hdu 5014 Number Sequence 2014 ACM/ICPC Asia Regional Xi'an Online
来源:互联网 发布:原生js获取input框 编辑:程序博客网 时间:2024/05/16 09:50
每次遇到找规律的提题都极其智硬,喵的看了别人的题解才知道。
这里是每个小区间内分别匹配,以2^k为划分
例如
0 000
1 001
2 010
3 011
4 100
4和3,2和1匹配。
WA了十几次最后发现是因为10^5后面写了四个0。。。
#include<iostream>#include<stdio.h>#include<cstdio>#include<stdlib.h>#include<vector>#include<string>#include<cstring>#include<cmath>#include<algorithm>#include<stack>#include<queue>#include <ctype.h>using namespace std;//hdu 5014int n;const int maxn=100010;int a[maxn];int mp[maxn]; int l; int r;int get(int bit){ int ans=1; for(int i=1;i<=bit;i++) { ans*=2; } return ans;}void input() { for(int i=0;i<=n;i++) { scanf("%d",&a[i]); } l=0; r=0; } void run() { memset(mp,0,sizeof(mp)); // int t=0; for(int i=18;i>=0;i--) { if(get(i)<=n) { // t=i; l=get(i); break; } } // l=get(t);//从后往前找,找到第一个2^k的数 r=n; while(l>0)// when index>0, not the number, { // cout<<l<<" "<<r<<endl; //for(int j=get(l),i=get(l)-1;i>=max(2*get(l)-r-1,0)&&j<=r;i--,j++) //for(int j=r,i=l-(r-l+1);i<=l-1;i++,j--) for(int j=l,i=l-1;i>=max(2*l-r-1,0)&&j<=r;i--,j++) { mp[i]=j; mp[j]=i; } // r=2*get(l)-r-2; r=2*l-r-2; if(r<=0) break; for(int i=18;i>=0;i--) { //if(get(i)<l&&get(i)<=r) if(get(i)<=r) { l=get(i); // l=i; break; } } } long long ans=0; for(int i=0;i<=n;i++) { ans+=a[i]^mp[a[i]]; } printf("%I64d\n",ans); for(int i=0;i<=n;i++) { printf("%d%c",mp[a[i]],i==n?'\n':' '); } }int main(){ freopen("input.txt","r",stdin); // freopen("data.txt","r",stdin); // freopen("out1.txt","w",stdout); while(scanf("%d",&n)!=EOF) { input(); run(); } return 0;}
0 0
- hdu 5014 Number Sequence 2014 ACM/ICPC Asia Regional Xi'an Online 数论
- HDU 5014 Number Sequence 贪心 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5014 Number Sequence 找规律 | 贪心 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5014 Number Sequence 2014 ACM/ICPC Asia Regional Xi'an Online
- 2014 ACM/ICPC Asia Regional Xi'an Online 小记
- 2014 ACM/ICPC Asia Regional Xi'an Online
- 2014 ACM/ICPC Asia Regional Xi'an Online(hdu 5007 - hdu 5017)
- hdu 5015 233 Matrix 2014 ACM/ICPC Asia Regional Xi'an Online 矩阵快速幂
- hdu 5012 Dice 2014 ACM/ICPC Asia Regional Xi'an Online bfs
- hdu 1009 233 Matrix 矩阵构造 --2014 ACM/ICPC Asia Regional Xi'an Online
- HDU 5015 233 Matrix / 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5008(2014 ACM/ICPC Asia Regional Xi'an Online ) Boring String Problem(后缀数组&二分)
- hdu 5011 Game Nim博弈 2014 ACM/ICPC Asia Regional Xi'an Online
- hdu 5007 Post Robot 水题 2014 ACM/ICPC Asia Regional Xi'an Online
- 2014 ACM/ICPC Asia Regional Xi'an Online 233 Matrix,hdu 5015
- hdu 5012 Dice BFS 2014 ACM/ICPC Asia Regional Xi'an Online
- HDU5014(异或) HDU 5012(BFS)(2014 ACM/ICPC Asia Regional Xi'an Online)题解
- hdu 5009 Paint Pearls 2014 ACM/ICPC Asia Regional Xi'an Online
- 搞了一天终于稍微成功在github上搭了个博客...
- Oulipo (poj 3461&&hdu 1686) KMP
- Least Common Ancestors
- 第八周项目1:分段函数求值
- ADFS部署过程中设置network service对证书的读取权限
- hdu 5014 Number Sequence 2014 ACM/ICPC Asia Regional Xi'an Online
- vi查找替换命令详解
- php 读取文件自身内容,与读取文件输出内容
- 带我去俄共分为
- 撒发哈开始浪费看紧啊好地方卡死好烦噶哈是的发哈开始啊的发卡哈思考法手法还是卡的发机啊啊了卡撒就发的卢卡斯的发看安徽的风景啊
- PHP函数补完:stream_context_create()模拟POST/GET
- 啊撒的发打发打发
- 立此存照(11)[C++]cfloat头文件即浮点数的最大值与最小值
- a是发生发撒旦法