• 集训 T4-分配时间


    题目:

    • Snipaste_2020-05-17_17-42-01.png

    思路:

    • 这个题目正解为dp,但是我并不会dp,所以写了个类似于T3的搜索。(然后就70分了
    • 先看一张图:
    • Snipaste_2020-05-17_17-56-05.png
    • 我的思路是把写名字的时间和写卷子的时间算在了一起(下标表示时间点,比如下标2那一行代表的是第二分钟每套试卷可以得多少分),比如写名字需要1分钟,那么这一份卷子写一分钟就是0分,两分钟才是1分(试卷①),因为我把写名字的时间和写试卷的时间按在一起算了,
    • 那么一共有t分钟的时间,按照我的思路就是把t分钟的时间分成n份,每一份就代表做这一套卷子写多长时间,然后将所有时间段的分数都加起来找最大的就是答案了。
    • 以上一副图来表示例子,最好的分配就是(0,3,2),表示试卷①做0分钟,试卷②做3分钟,试卷③做2分钟,答案就是3+3=6。

    Code:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <stack>
    #include <map>
    #include <set>
    #include <list>
    using namespace std;
    #define R read()
    #define GC getchar()
    #define ll long long
    #define ull unsigned long long
    #define INF 0x7fffffff
    #define LLINF 0x7fffffffffffffff
    ll read(){
        ll s=0,f=1;
        char c=GC;
        while(c<'0'||c>'9'){if(c=='-')f=-f;c=GC;}
        while(c>='0'&&c<='9'){s=s*10+c-'0';c=GC;}
        return s*f;
    }
    void fre(){
        freopen("times.in","r",stdin);
        freopen("times.out","w",stdout);
    }
    int t,n,m;
    int k[20][110];
    int ans;
    void dfs(int num,int cnt,int sum){//num表示剩几分钟,cnt表示还有几个试卷没枚举,sum表示现在的分数
        if(cnt==1){//cnt如果是1就表示只剩下一个试卷了,已经没有什么其他的方案了,所以更新答案&退出
            ans=max(ans,sum+k[n-cnt+1][num]);//更新答案
            return ;
        }
        for(int i=0;i<=num;++i){
            dfs(num-i,cnt-1,sum+k[n-cnt+1][i]);//继续搜索,i表示这一个试卷上用i分钟
        }
    }
    int main(){
        fre();
        t=R;n=R;m=R;
        for(int i=1;i<=n;++i){
            for(int j=1+m;j<=t+m;++j){//输入,加m是因为我把写名字和写试卷的时间弄在一起算了
                k[i][j]=R;
            }
        }
        dfs(t,n,0);//搜索
        printf("%d",ans);//输出
        return 0;
    }
    
  • 相关阅读:
    CMMI学习系列(1)CMMI简介及证书介绍
    Lync 2010 系统架构 学习笔记(2)
    Lync 2010 标准版 AD控制器搭建 学习笔记(3)
    云计算 学习笔记(4) HDFS 简介及体系结构
    云计算 学习笔记(1) Hadoop简介
    Lync 2010 Lync客户端测试 学习笔记(7)
    Lync 2010 监控服务器配置 学习笔记(8)
    CMMI学习系列(7)组织过程库,预评估,正式评估。
    CMMI学习系列(5)CMMI3过程规范制定
    CMMI学习系列(6)项目试点
  • 原文地址:https://www.cnblogs.com/FUXyao/p/12906210.html
Copyright © 2020-2023  润新知