zcmu1102
2016-03-07 19:18
274 查看
1102: 正整数序列
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 371 Solved: 191
[Submit][Status][Web
Board]
Description
给定正整数n,你的任务是用最少的操作数把序列1,2,3,...,n-1,n都变成0.每次操作可从序列中选择一个或多个整数,同时减去一个相同的正整数.比如1,2,3可以把2,3同时减去2,变成1,0,1.Input
[align=left]多组测试数据,每组仅一行,为正整数n.(1<=n<=10^9)[/align]Output
对于每组数据输出最少的操作次数Sample Input
12
3
Sample Output
12
2
HINT
ac代码:#include <iostream> #include<cstdio> using namespace std; int n,m; int a(int b) { if(b==1) return 1; return a(b/2)+1; } int main() { while(scanf("%d",&n)!=EOF) { m=a(n); printf("%d\n",m); } return 0; }解题思路:
刚拿到题目时,真是一头雾水,不知道该怎么办?尤其是看到n可以大到10^9,就想肯定是要找规律的喽,于是试着从1 写到了10。发现规律f(n)=f(n/2)+1;于是就做出来了。
相关文章推荐
- 广度优先遍历队列实现
- obj文件
- python小点心--内存文件映射
- mysql服务启动不了
- bzoj 1087: [SCOI2005]互不侵犯King 状压dp
- IPv6与IPv4,IPv6普及难的原因
- 机器学习系列(7)_机器学习路线图(附资料)
- ListView设置EmptyView
- mysql 性能优化方案
- 不能ssh连接ubuntu linux 服务器 secureCRT不能ssh连接服务器 不能远程ssh连接虚拟机的ubuntu linux
- idea-multimarkdown 插件破解小记
- OC - 3D Touch(2)
- 【Linux进程间通信】 - 匿名管道
- 算法
- /data/data/和手机拍照
- pat1008:数组元素循环右移问题
- 使用timer方法生成一个定时器,每隔一段时间输出一个随机数
- kafak、flume、elasticsearch
- Allen OpenCart 多功能自适应主题模板 ABC-0705
- MachineLearning in Action_KNN