zoukankan      html  css  js  c++  java
  • HDU4502吉哥系列故事——临时工计划

    http://acm.hdu.edu.cn/showproblem.php?pid=4502

    题意 :这个是中文题,我就不再详述了。

    思路 : 以前做过一个活动区间选择,结果就按着那个思路敲了,后来发现只能保证做足够多的工作,但是无法保证获得的钱最多,才知道是一个动态规划,其实对于我这种菜鸟来说,做动态规划没有什么难不难的,只有找不找的到公式的。。。。。我的代码里dp[h][k]代表的是从第h天干到第k天能赚多少钱,所以存在一个变量h < j < k,就是从第h天干到第 j 天的前一天,再从第 j 天结束后的那天开始干到第 k 天,再加上这 j 天干的得到的工资,应该不难理解。

    #include<stdio.h>
    #include<stdlib.h>
    #include<cstring>
    #include<algorithm>
    using namespace std ;
    struct node
    {
        int start ;
        int end ;
        int sac ;
    } ch[1100] ;
    int dp[1100][1100] ;
    int main()
    {
        int n ;
        scanf("%d",&n) ;
        for(int i = 0 ; i < n ; i++)
        {
            int a,b ;
            scanf("%d %d",&a,&b) ;
            for(int j = 0 ; j < b ; j++)
            {
                scanf("%d %d %d",&ch[j].start,&ch[j].end,&ch[j].sac);
            }
    
            memset(dp,0,sizeof(dp)) ;
            for(int j = 0 ; j < b ; j++)
            {
                if(ch[j].end <= a){
    
                for(int h = 1 ; h <= ch[j].start ; h++)
                    for(int k = a ; k >= ch[j].end ; k--)
                        if(dp[h][k] < dp[h][ch[j].start-1]+dp[ch[j].end+1][k]+ch[j].sac)
                            dp[h][k] = dp[h][ch[j].start-1]+dp[ch[j].end+1][k]+ch[j].sac;
                }
            }
            printf("%d
    ",dp[1][a]) ;
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    Java用户自定义函数
    JavaScript常用函数
    Javascript 流程控制
    Javascript基础
    CSS的继承和使用方式
    Python列表
    Python变量和简单数据类型
    CSS选择符
    CSS的基本语法
    Java环境变量搭建
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3415574.html
Copyright © 2011-2022 走看看