【数论】[HNOI2006]鬼谷子的钱袋
来源:互联网 发布:税收数据质量管理 编辑:程序博客网 时间:2024/05/22 03:30
题目
倍增以及二进制的思想
比如我们要算的是10 如果要组成的一个数能由一部分加上另一部分组成就ok了 6~10可以由1~5加5组成 所以要选5 接下来就把5除2然后再用小的一部分组成大的一部分 一直除2到不能再除
因为要从小到大输出 但第一个确定的一定是最大的 所以可以用栈存储
代码如下
#include<iostream>#include<cstdio>#include<cctype> using namespace std; #define in = read(); typedef long long ll; typedef unsigned int ui; const ll size = 100 + 1; int n , top; int stack[size];inline ll read(){ ll num = 0 , f = 1; char ch = getchar(); while(!isdigit(ch)){ if(ch == '-') f = -1; ch = getchar(); } while(isdigit(ch)){ num = num*10 + ch - '0'; ch = getchar(); } return num*f;}int main(){ n in; while(n){ stack[++ top] = ((n + 1)>>1); n >>= 1; } printf("%d\n" , top); while(top){ printf("%d " , stack[top]); top --; }}//COYG
阅读全文
0 0
- 【数论】[HNOI2006]鬼谷子的钱袋
- 【数论 / 数值】【RQNOJ】[HNOI2006]鬼谷子的钱袋
- 【HNOI2006】鬼谷子的钱袋
- 鬼谷子的钱袋hnoi2006
- [HNOI2006]鬼谷子的钱袋
- [HNOI2006]鬼谷子的钱袋
- bzoj 1192: [HNOI2006]鬼谷子的钱袋 (数论)
- 1192: [HNOI2006]鬼谷子的钱袋
- [Bzoj1192][HNOI2006]鬼谷子的钱袋
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- bzoj1192: [HNOI2006]鬼谷子的钱袋
- BZOJ1192[HNOI2006]鬼谷子的钱袋
- [BZOJ1192] [HNOI2006]鬼谷子的钱袋
- 【bzoj1192】[HNOI2006]鬼谷子的钱袋
- 【HNOI2006】【BZOJ1192】鬼谷子的钱袋
- bzoj1192 [HNOI2006]鬼谷子的钱袋
- 1192: [HNOI2006]鬼谷子的钱袋
- 【bzoj1192】【HNOI2006】【鬼谷子的钱袋】
- BP神经网络的matlab实现
- 表单验证
- 10.15PCA
- angularjs 初使用2
- Codeforces Round #440 div2 A. Search for Pretty Integers
- 【数论】[HNOI2006]鬼谷子的钱袋
- angularjs $http请求--图书
- Codeforces Round #440 (Div. 1) B. Something with XOR Query
- angular制作购物车
- RecyclerView
- 购物车综合练习题angular js
- HDU 5943 Kingdom of Obsession(二分图匹配+数论)
- 原购物车只有删除和查询
- Codeforces Round #440 div2 C. Maximum splitting