竞赛得分
2017-12-14 17:11
148 查看
题目
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> using namespace std; const int maxm=10001,maxn=10001; int m,n,w[maxn],c[maxn],f[maxm]; int main() { scanf("%d%d",&m,&n); for (int i=1;i<=n;i++) scanf("%d%d",&c[i],&w[i]); for (int i=1;i<=n;i++) for (int v=w[i];v<=m;v++)//f[v]表示不超过时间值v的最大价值 if (f[v-w[i]]+c[i]>f[v]) f[v]=f[v-w[i]]+c[i]; printf("%d",f[m]);//f[m]为最优解 }
相关文章推荐
- SSL_2292竞赛得分C++(动规练习题)
- 'VB编程 编写一个竞赛评分的函数过程。评委打分为参数(数组参数),选手得分为函数值。记分规则为:去掉一个最高分,去掉一个最低分,然后求平均。调用该函数,由键盘输入5个评委的打分(存放在数组中),输出
- kaggle —— IMDB影评得分估计竞赛代码
- 算法竞赛入门经典习题3-1 得分(Score,ACM/ICPC Seoul2005,UVa1585)
- 算法竞赛入门经典 习题3-1 得分(Score, ACM/ICPC Seoul 2005, UVa1585)
- 竞赛图的得分序列 (SRM 717 div 1 250)
- (ssl 2292)竞赛得分 4000
- "高教社杯"第三届福建省大学生程序设计竞赛
- 算法竞赛入门第七章:回溯与路径寻找
- 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)
- 湖南省第十二届大学生计算机程序设计竞赛 B 有向无环图 拓扑DP
- 【数学】CSU 1810 Reverse (2016湖南省第十二届大学生计算机程序设计竞赛)
- FZU Problem 2213 Common Tangents(简单几何,分类讨论)——第六届福建省大学生程序设计竞赛-重现赛
- BZOJ - 1609/USACO - Feb08 Silver Eating Together 麻烦的聚餐 重庆一中高2018级竞赛班第九次测试 2016.9.10 Problem 2
- 51Nod-1390-游戏得分
- UVa - 1625 Color Length 颜色的长度 动态规划 重庆一中高2018级竞赛班第十次测试 2016.9.16 Problem 2
- C编程题:求参赛选手的最后得分
- 挑战程序设计竞赛 4.4常用技巧(二)
- 【HDU5925 2016CCPC东北地区大学生程序设计竞赛 - 重现赛 D】【离散化 BFS】Coconuts 大地图少数坏点输出每个联通块的大小
- [猜你喜欢]冠军“yes,boy!”分享,含竞赛源代