zoukankan      html  css  js  c++  java
  • 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);
    }
    

    这里写图片描述

  • 相关阅读:
    5个有趣且不必要的 JavaScipt 技巧
    动态规划的原理?
    如何避免出现failfast?
    动态规划的原理?
    jsp文件导包
    程序突击
    monthly report
    weekly review: 细节决定一切
    weekly review
    祸从口入祸从口出
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532340.html
Copyright © 2011-2022 走看看