bzoj1192 鬼谷子的钱袋
来源:互联网 发布:大数据出现的问题 编辑:程序博客网 时间:2024/04/28 22:23
题意:把一个数n进行拆分,拆分出来大于一的数两两不等,使得拆出来的数可以组成[1, n]间的所有数。求最少拆成多少个数。n <= 1000000000。
@Azrael_Death推荐的水题
拆出来的数越小越好,又要组成所有数,易想到拆分二进制。求n在二进制下的位数即可。
#include<map>#include<cmath>#include<cstdio>#include<queue>#include<vector>#include<string>#include<cstring>#include<iostream>#include<algorithm>using namespace std;inline int read() {int x = 0, flag = 1; char ch = getchar();while (ch > '9' || ch < '0') { if (ch == '-') flag = -1; ch = getchar(); }while (ch <= '9' && ch >= '0') { x = x * 10 + ch - '0'; ch = getchar(); }return x * flag;}#define rep(ii, aa, bb) for (int ii = aa; ii <= bb; ii++)#define drp(ii, aa, bb) for (int ii = aa; ii >= bb; ii--)#define ll long longint main() {int m; cin >> m;int cnt = 0;while (m) m >>= 1, cnt++;cout << cnt;return 0;}
阅读全文
0 0
- BZOJ1192鬼谷子的钱袋
- [bzoj1192]鬼谷子的钱袋
- 【Bzoj1192】鬼谷子的钱袋
- bzoj1192 鬼谷子的钱袋
- [Bzoj1192][HNOI2006]鬼谷子的钱袋
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- BZOJ1192[HNOI2006]鬼谷子的钱袋
- [BZOJ1192] [HNOI2006]鬼谷子的钱袋
- 【bzoj1192】[HNOI2006]鬼谷子的钱袋
- 【HNOI2006】【BZOJ1192】鬼谷子的钱袋
- bzoj1192 [HNOI2006]鬼谷子的钱袋
- 【bzoj1192】【HNOI2006】【鬼谷子的钱袋】
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- 【bzoj1192】[HNOI2006]鬼谷子的钱袋
- BZOJ1192: [HNOI2006]鬼谷子的钱袋
- bzoj1192 [HNOI2006]鬼谷子的钱袋
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- Protocol 深入了解
- Linux library查找顺序(按优先级排列)
- nginx配置入门
- 【java学习笔记】加强版的for循坏
- bash与dash
- bzoj1192 鬼谷子的钱袋
- 左连接,列转行,显示权限名
- java中this关键字
- Express笔记
- 文章标题
- 安卓注册登录界面示例
- wget命令
- linux 安装expect
- SpringMVC在后台获取前台输入的时间