zoukankan      html  css  js  c++  java
  • UVA 757 Gone Fishing

    UVA_757

        显然钓鱼是不会走回头路的,因为如果走回头路一定不会最优。

        于是我们就可以枚举走到的位置,剩下的问题就是在这些可以到达的河中怎么钓鱼会更优,由于各个河是没有影响的,于是我们就可以枚举可供消耗的时间,在当前时刻一定会选择鱼最多的河去钓,需要注意的是,由于题目对输出的特殊要求,即便当前最多只能钓0条,那么也得去钓。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 30
    int N, H, d[MAXD], f[MAXD], t[MAXD], now[MAXD], plan[MAXD], use[MAXD];
    long long int max;
    void init()
    {
    int i, j, k;
    scanf("%d", &H);
    H *= 12;
    for(i = 0; i < N; i ++)
    scanf("%d", &f[i]);
    for(i = 0; i < N; i ++)
    scanf("%d", &d[i]);
    t[0] = 0;
    for(i = 1; i < N; i ++)
    {
    scanf("%d", &t[i]);
    t[i] += t[i - 1];
    }
    }
    int check()
    {
    int i;
    for(i = 0; i < N; i ++)
    {
    if(use[i] > plan[i])
    return 1;
    else if(use[i] < plan[i])
    return 0;
    }
    return 0;
    }
    void change(long long int ans)
    {
    int i;
    if(ans > max || (ans == max && check()))
    {
    max = ans;
    for(i = 0; i < N; i ++)
    plan[i] = use[i];
    }
    }
    void solve()
    {
    int i, j, k, h, num;
    long long int ans;
    max = -1;
    for(i = 0; i < N && t[i] <= H; i ++)
    {
    h = H - t[i];
    ans = 0;
    for(j = 0; j <= i; j ++)
    now[j] = f[j];
    memset(use, 0, sizeof(use));
    while(h)
    {
    num = -1;
    for(j = 0; j <= i; j ++)
    if(now[j] > num)
    {
    num = now[j];
    k = j;
    }
    ++ use[k];
    -- h;
    ans += num;
    now[k] -= d[k];
    if(now[k] < 0)
    now[k] = 0;
    }
    change(ans);
    }
    printf("%d", plan[0] * 5);
    for(i = 1; i < N; i ++)
    printf(", %d", plan[i] * 5);
    printf("\n");
    printf("Number of fish expected: %lld\n", max);
    }
    int main()
    {
    int tt = 0;
    for(;;)
    {
    scanf("%d", &N);
    if(!N)
    break;
    init();
    if(tt ++)
    printf("\n");
    solve();
    }
    return 0;
    }


  • 相关阅读:
    VUE权限列表控制
    VUE-element-UI修改内置样式
    微信开发-url地址传值踩坑
    git 上传命令
    微信开发-缩略图插件
    axios拦截器
    设置contentType
    JSON.parse 函数应用 (复制备忘)
    angularjs开发遇到的坑
    http 请求头
  • 原文地址:https://www.cnblogs.com/staginner/p/2310621.html
Copyright © 2011-2022 走看看