zoukankan      html  css  js  c++  java
  • SSL 2305——竞赛总分

    Description

    学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分。现在要进行一次竞赛,总时间T固定,有若干类型可选择的题目,每种类型题目可选入的数量不限,每种类型题目有一个si(解答此题所得的分数)和ti(解答此题所需的时间),现要选择若干题目,使解这些题的总时间在T以内的前提下,所得的总分最大。
    输入包括竞赛的时间,M(1 <= M <= 10000)和题目类型数目N(1 <= N <= 10000)。
    后面的每一行将包括两个整数来描述一种”题型”:
    第一个整数说明解决这种题目能得的分数(1 <= points <= 10000),第二整数说明解决这种题目所需的时间(1 <= minutes <= 10000)。

    Input

    第 1 行: 两个整数:竞赛的时间M和题目类型数目N。 第 2-N+1 行: 两个整数:每种类型题目的分数和耗时。

    Output

    单独的一行,在给定固定时间里得到的最大的分数。

    Sample Input

    300 4
    100 60
    250 120
    120 100
    35 20
    Sample Output

    605


    一个简单的完全背包水过


    代码如下:

    #include <cstdio>
    #include <cstring>
    int m,n,c[10010],w[10010],f[10010];
    void input_data()
    {
        scanf("%d%d",&m,&n);
        for (int i = 1;i <= n;i++)
            scanf("%d%d",&c[i],&w[i]); 
    }
    void get_ans()
    {
        memset(f,0,sizeof(f));
        for (int i = 1;i <= n;i++) 
            for (int j = w[i];j<=m;j++) 
                if (f[j] < f[j-w[i]] + c[i]) 
                    f[j] = f[j-w[i]] + c[i];
    }   
    
    void output_ans()
    {
        printf("%d",f[m]);  
    }
    
    int main()
    {
        input_data();
        get_ans();
        output_ans();
        return 0;   
    }
  • 相关阅读:
    一文解读RESTful (转)
    一文解读Redis (转)
    一文解读JSON (转)
    一文解读单点登录 (转)
    一文解读雪碧图 (转)
    一文解读骨架屏 (转)
    一文解读MPA/SPA(转)
    一文解读HTTP2 (转)
    一文解读HTTP (转)
    HTML5中Video标签无法播放mp4的解决办法
  • 原文地址:https://www.cnblogs.com/Comfortable/p/8412312.html
Copyright © 2011-2022 走看看