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;
    }


  • 相关阅读:
    Javascript 计时事件说明
    结合RibbonControl设计MDI窗体,在子窗体关闭后,顶部显示额外的控制栏残影
    交叉验证[转]
    [转载】我的数据挖掘之路 by wrchow
    《这些道理没有人告诉过你》摘记
    2017BUAA软工第0次作业
    SSM框架+slf4j 以Gradle实现
    RMQ(ST算法)
    博客园装饰
    【转载】UVa 11464 Even Parity 偶数矩阵
  • 原文地址:https://www.cnblogs.com/staginner/p/2310621.html
Copyright © 2011-2022 走看看