hdu 6121 分治+思维
来源:互联网 发布:绘声绘影软件免费下载 编辑:程序博客网 时间:2024/06/07 06:20
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll table[105],help[105],n,k,res;int depth;void init(){ table[1]=help[1]=1; for(int i=2;i<=depth;i++) { help[i]=help[i-1]*k; table[i]=table[i-1]+help[i]; }}int main(){ //freopen("C:\\Users\\Со·І\\Desktop\\КэѕЭ\\1002.in","r",stdin); int t,i,j; ll node; scanf("%d",&t);while(t--&&scanf("%lld%lld",&n,&k)!=EOF) { if(k==1) { int tp=n%4; if(!tp) res=n; else if(tp==1) res=1; else if(tp==2) res=n+1; else res=0; } else { depth=0; res=n; for(ll m=n;m;m=(m-1+k-1)/k) depth++; init(); res^=(n-table[depth-1])&1; node=(n-2)/k; depth--; for(int now=2;node;node=(node-1)/k,depth--,now++) { ll l=table[depth-1],r=table[depth]-1; res^=((node-l)&1)*table[now]; res^=((r-node)&1)*table[now-1]; ll lnode=node; while(lnode<=(n-2)/k) lnode=lnode*k+1; res^=table[now-1]+n-lnode; } } printf("%lld\n",res);}return 0;}
阅读全文
0 0
- hdu 6121 分治+思维
- HDU 6121 思维 + DFS
- HDU 6121 满k叉树 + 思维
- hdu 1007 分治
- hdu 1007 (分治)
- hdu 4918 点分治
- hdu 4812 树分治
- HDU 4916 树分治
- HDU 5102 树分治
- 【hdu 4812】点分治
- HDU 4456 CDQ分治
- hdu 5730(分治FFT)
- HDU-5324 cdq分治
- HDU - 1166 CDQ分治
- Hdu 5618 CDQ分治
- HDU 5618 分治
- HDU 5324 分治
- hdu 6035 树分治
- Uncaught TypeError: window.showModalDialog is not a function
- Spring IoC容器(一)
- KMP总结详解
- 在drawable中绘制小圆点
- Hdu-3336-Count the string-【KMP】
- hdu 6121 分治+思维
- 欢迎使用CSDN-markdown编辑器
- 51Nod 1384:全排列(递归求全排列)
- 深入了解bash与sh的区别
- 字典树
- 动态生成的多个select表单提交到后台
- sql 格式化时间
- LCM 埃拉托斯特尼素数筛法+位图改进
- 【HPU 1019 】985的买饮料难题 (dp)