ZZULIOJ 2123
来源:互联网 发布:mac的网页开发工具 编辑:程序博客网 时间:2024/06/05 14:09
2123: 倒水(Water)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 325 Solved: 72
SubmitStatusWeb Board
Description
一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子) 显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以到达目标。 现在CC想知道,最少需要买多少新瓶子才能达到目标呢?
Input
第一行一个整数T,表示有T组数据。 接着T行,每行两个正整数, N,K(1<=N<=10^9,K<=1000)。
Output
一个非负整数,表示最少需要买多少新瓶子。
Sample Input
3
3 1
13 2
1,000,000 5
Sample Output
1
3
15808
主要的思路就是倒水,将所有的水都往要保留下的水杯里面,然后题目要求最少还要买多少杯水,那么从所需要留的杯子第一个开始,一直从该扔的瓶子里组合与其相等水量往里面倒水,组不成则换下一个,知道最后一个也不能组成,此时所需要的则为最少的。
比较坑的一点就是题目输入的时候有逗号,所以输入的数据要用字符串处理,很坑、
#include<bits/stdc++.h>using namespace std;long long int a[1000001];int main(){ int n,j; string e,f; long long int a,b,d; long long int x; scanf("%d",&n); while(n--) { a=0; b=0; cin>>e>>f; x=1; for(int i=e.size()-1;i>=0;i--) { if(e[i]>='0'&&e[i]<='9') { a=a+x*(e[i]-'0'); } else { x=x/10; } x=x*10; } x=1; for(int i=f.size()-1;i>=0;i--) { if(f[i]>='0'&&f[i]<='9') { b=b+x*(f[i]-'0'); } else { x=x/10; } x=x*10; } d=a; int c; a=a-b; for(int i=1; i<=b; i++) { int t=0; if(d<=b||d==b+1) { printf("0\n"); break; } c=1; for(j=1;;j++) { if(i<b) { a=a-c; if(a<0) { a=a+c; break; } else if(a==0) { printf("0\n"); t=1; break; } c=c*2; } else if(i==b) { a=a-c; if(a<0) { a=fabs(a); printf("%lld\n",a); break; } else if(a==0) { printf("0\n"); break; } c=c*2; } } if(t==1) { break; } } } return 0;}
0 0
- ZZULIOJ 2123
- zzulioj--1816
- ZZULIOJ--1798
- zzulioj-1895
- zzulioj-1899
- ZZULIOJ-1894
- 【zzulioj 1922】
- 【zzulioj 1921 】
- zzulioj 1919
- zzulioj 1875
- ZZULIOJ 2121
- ZZULIOJ 2126
- zzulioj 2134
- 【ZZULIOJ 】 几道水题
- zzulioj 2174
- ZZULIOJ 1726: 迷宫
- zzulioj 1726: 迷宫
- zzulioj 1734: 堆 【dfs】
- iOS通过openURL打开原生应用与页面
- IDEA log4j输出到控制台乱码
- 使用java理解程序逻辑第十四章
- Linux Shell从入门到删除根目录跑路指南
- 职业规划之方法论
- ZZULIOJ 2123
- Activity 初始化性能优化
- 网站seo优化中为什么内容占主导地位
- Gobblin Kafka Source源码分析
- Jquery的Ajax函数应用
- HTML5 资源整理
- Java线程:volatile关键字
- fastboot 单刷modem报错解决办法
- 关于Android6.0/7.0权限,以及7.0调用相机和切图的解决办法