• POJ 1949 DP?


    题意:
    有n个家务,第i个家务需要一定时间来完成,并且第i个任务必须在它 “前面的” 某些任务完成之后才能开始。

    给你任务信息,问你最短需要多少时间来完成任务。

    输入:
    第一行n个家务
    第2~n+1行:每行第一个数字:完成这件家务所用的时间。
    第二个数字:需要前面几个家务才能做这件。
    随后是家务的编号

    思路:

    chore K (K > 1) can have only chores 1,.K-1 as prerequisites
    这不就成超级无敌大水题了嘛。
    每回找到编号前面的最大值。 更新一下就OK了。

    // by SiriusRen
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int n,time[10005],jy,xx,ans=0;
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&time[i]);
            scanf("%d",&jy);
            int temp=0;
            while(jy--)
                scanf("%d",&xx),temp=max(time[xx],temp);
            time[i]+=temp;
        }
        for(int i=1;i<=n;i++)ans=max(ans,time[i]);
        printf("%d
    ",ans);
    }
    

    这里写图片描述

  • 相关阅读:
    HDU-2067-小兔的棋盘
    HDU-1861-游船出租
    C语言笔记
    P1164 小A点菜
    P1028 数的计算
    P1217 [USACO1.5]回文质数 Prime Palindromes
    P1088 火星人
    P2392 kkksc03考前临时抱佛脚
    P3799 妖梦拼木棒
    First Step (ファーストステップ)
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532340.html
Copyright © 2020-2023  润新知