首页 > 其他 > 详细

【洛谷P1582】倒水

时间:2018-07-27 22:17:55      阅读:179      评论:0      收藏:0      [点我收藏+]

倒水

题目链接

显然,2^x个杯子里的水可以倒在一个杯子里

所以我们可以贪心地每次将N中最大的2^x减掉

减k次(若中途已经为0,直接输出0)

若大于0,用最小的比N大的2^x减剩下的N,即为答案

 1 #include<cstdio>
 2 #include<cmath>
 3 int n,k,ans,i;
 4 int main()
 5 {
 6     scanf("%d%d",&n,&k);
 7     for(i=1;i<k;i++){
 8         n-=(1<<int(log2(n)));
 9         if(!n) break;
10     }
11     if(n<2) ans=0;
12     else ans=(1<<(int(log2(n))+1))-n;
13     printf("%d\n",ans);
14     return 0;
15 }

 

【洛谷P1582】倒水

原文:https://www.cnblogs.com/yjkhhh/p/9379672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!