hdu 5573 Binary Tree(传说中的构造)
来源:互联网 发布:360数据恢复软件比较差 编辑:程序博客网 时间:2024/05/21 11:25
这题第一眼见到,觉得是个dfs,但是呢,不知道怎么,看着简单但也没去写,(好在没去写),然后下来后,自己傻乎乎的去写dfs,然后果然炸了,毕竟我的裸dfs,复杂度又4^60….(不对,每一个要乘以个2^(i-1))..
然后就不知所措,上网搜了一下,发现是构造,但是呢,现在虽然我好像懂了,但肯定过几天我又不懂了,所以也不多说.
核心就是,他们说的只要使用前k-1层和最后一层搞一搞,就能搞出[0,2^k],感觉也真玄幻呢,然后还有一个地方就是他计算每一个地方是0还是1的方法,因为这里0不是代表没有,而是代表要减去,所以两倍.
构造难就难在,想到了没什么难度,就是难想到.
/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <math.h>#include <string>using namespace std;#define FFF freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define MP make_pair#define PB push_backtypedef long long LL;typedef unsigned long long ULL;const int MAXN = 1e5+17;const int MAXM = 20;const int INF = 0x7fffffff;const int MOD = 1e9+7;int main(){ #ifndef ONLINE_JUDGE FFF #endif int t,cs= 1 ; cin>>t; while(t--) { printf("Case #%d:\n",cs++); int n,k; cin>>n>>k; bool rgh = false; if(!(n&1)) { rgh = true; n--; } int dif = ((1<<k)-1-n)/2; int now = 1<<(k-1); vector<int > ans; for (int i = 0; i < k; ++i) { //cout<<dif<<" "<<now<<endl; if(dif>=now) { ans.PB(0); dif -= now; } else ans.PB(1); now>>=1; } now = 1; for (int i = ans.size()-1; i > -1; --i) { if(rgh&&i==0) now++; printf("%d %c\n",now,ans[i]==1?'+':'-'); now<<=1; } } return 0;}
阅读全文
0 0
- hdu 5573 Binary Tree(传说中的构造)
- HDU 5573 Binary Tree【构造】
- HDU 5573 Binary Tree 构造
- hdu 5573 Binary Tree 构造
- HDU 5573-Binary Tree (构造)
- hdu 5573 Binary Tree(构造)
- Hdu-5573 Binary Tree(贪心构造)
- HDU-5573 Binary Tree(构造/二进制)
- hdu 5573 Binary Tree【脑洞构造】
- HDU 5573 Binary Tree 构造(二进制)
- HDU 5573 Binary Tree ACM/ICPC 2015 Shanghai(构造)
- hdu 5573Binary Tree
- hdu 5573 Binary Tree
- hdu 5573 Binary Tree
- 【HDU 5573】Binary Tree
- HDU 5573 Binary Tree
- Turing Tree hdu 3333(传说中的图灵树)
- hdu 5573Binary Tree(二进制)
- Prime Ring Problem
- ch2 计算机的发展及应用
- Spark读文本将多行合并为一行
- QT5布局管理--停靠窗口QDock Widget
- Java中的多线程你只要看这一篇就够了
- hdu 5573 Binary Tree(传说中的构造)
- 安卓flex
- 2017七月、八月暑假集训总结
- 08.js.for循环
- Linq及Lamda表达式应用经验之 GroupBy 分组
- 算法竞赛入门例题3.2
- [Linux] Shell 中 $ 作用
- 6.0权限动态适配(一)(存在问题)
- 反省