码迷,mamicode.com
首页 > 其他好文 > 详细

[2016-03-31][codeforces][659C][Tanya and Toys]

时间:2016-04-01 01:15:19      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-03-31 23:49:13 星期四

  • 题目编号:[2016-03-31][codeforces][659C][Tanya and Toys].md

  • 题目大意:有$10^9$种物品,第i种物品价值i,已经用用n个物品,给m元,问最多能买多少个还没拥有的物品

  • 分析:贪心,从最低的开始买起,假设$m = 10^9$,那么也买的物品也不超过$10^6$个,因为$\frac{(1+k)k}{k} < 10^9$

  • 遇到的问题:答案可能为0

  1. #include <algorithm>
  2. #include <cstdio>
  3. using namespace std;
  4. int a[100000 + 10];
  5. int ans[1000000];
  6. int main(){
  7. int n,m;
  8. scanf("%d%d",&n,&m);
  9. for(int i = 0;i < n ; ++i){
  10. scanf("%d",&a[i]);
  11. }
  12. a[n] = 0;
  13. a[n + 1] = 1E9 + 10;
  14. sort(a,a+n+2);
  15. int cnt = 0;
  16. for(int i = 0;i < n+2 && m > 0; ++i){
  17. for(int j = a[i] + 1;j < a[i + 1] && m > 0;++j){
  18. m -= j;
  19. if(m < 0) break;
  20. ans[cnt++] = j;
  21. }
  22. }
  23. printf("%d\n",cnt);
  24. for(int i = 0;i < cnt;++i){
  25. printf("%d ",ans[i]);
  26. }
  27. printf("\n");
  28. return 0;
  29. }




[2016-03-31][codeforces][659C][Tanya and Toys]

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/fe15817bf036440bf286fe099bc860b6.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!