Codeforces 155B Combination
2016-07-20 18:40
309 查看
题意:
给你n张牌,每张牌有a[i]、b[i],分别表示可以获得的分数和可以获得的取牌次数,问在一开始只能取一次的情况下能获得的最大分数是多少。
思路:
由于这里的a[i]、b[i]都是正整数,那么当然取得牌越多分数越大,所以就有了贪心的策略,即先按b从大到小排,若b一样则a大的先排。
给你n张牌,每张牌有a[i]、b[i],分别表示可以获得的分数和可以获得的取牌次数,问在一开始只能取一次的情况下能获得的最大分数是多少。
思路:
由于这里的a[i]、b[i]都是正整数,那么当然取得牌越多分数越大,所以就有了贪心的策略,即先按b从大到小排,若b一样则a大的先排。
#include<cstdio> #include<algorithm> using namespace std; const int MAX=1005; struct Node{ int a,b; }p[MAX]; bool cmp(Node p1,Node p2){ if(p1.b!=p2.b) return p1.b>p2.b; else return p1.a>p2.a; } int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&p[i].a,&p[i].b); } sort(p,p+n,cmp); int ans=0,use=1,i=0; while(use&&i<n){ use+=p[i].b; ans+=p[i].a; i++; use--; } printf("%d\n",ans); }
相关文章推荐
- PrinterDemo
- centos安装python mvc框架django1.9
- 自定义的ViewGroup中添加自定义View 造成的无法显示问题(个人)
- UGUI深度学习
- Memcached的安装
- java
- codeforces水题100道 第二十题 Codeforces Round #191 (Div. 2) A. Flipping Game (brute force)
- 监督学习应用.正规方程组
- Codeforces 155A I_love_%username%
- Adnroid Retrifit2.0 多图片上传 服务端Java
- MYSQL的wait_timeout与连接池相关
- 4-7 统计某类完全平方数 (20分)
- 图片压缩保存
- iOS开发的22个奇葩技巧
- 二叉堆C语言实现
- Codeforces Round #363 (Div. 1) B. Fix a Tree 拆环+合并树
- 浏览器内嵌显示pdf文档
- 理解 C 语言中的复杂声明
- pl/sql developer中如何导出oracle数据库结构? 参考文章一
- 机器 · 人 | 可重复的事情,让机器去做