hdu 5014 贪心+位处理
来源:互联网 发布:工业生产总值数据 编辑:程序博客网 时间:2024/06/16 11:58
http://acm.hdu.edu.cn/showproblem.php?pid=5014
题意略。
分析: 通过发现规律贪心处理即可,从n开始反向遍历到0,假设与数i匹配的是 Xi;
那么i^Xi的二进制位一定全1,并且二进制位数等于i的二进制位数
#include <iostream>#include <stdio.h>#include <string>#include <string.h>#include <algorithm>const int N=1e5+100;using namespace std;typedef long long ll;int a[N];int b[N];int main(){ int n; while(scanf("%d",&n)!=EOF) { memset(b,-1,sizeof(b)); for(int i=0;i<=n;i++)scanf("%d",&a[i]); ll sum=0; for(int i=n;i>=0;i--) { if(b[i]!=-1)continue; int tmp=i,ans=0,cnt=1; while(tmp) { if((tmp&1)==0)ans+=cnt; tmp>>=1; cnt*=2; } sum+=2*(i^ans); b[i]=ans; b[ans]=i; } printf("%I64d\n",sum); for(int i=0;i<=n;i++) { if(i==0)printf("%d",b[a[i]]); else printf(" %d",b[a[i]]); } printf("\n"); } return 0;}
0 0
- hdu 5014 贪心+位处理
- HDU - 5014 Number Sequence(贪心+位运算)
- 【HDU】5747 - Aaronson(位运算 & 贪心)
- hdu 5969 最大的位或【贪心】
- hdu 5969 最大的位或 贪心
- HDU 5014 贪心
- hdu 5014 贪心
- 贪心 HDU 5014
- hdu 5491 The Next(位运算+贪心)
- 【Hdu 5661】 Claris and XOR 位运算+贪心
- hdu 5969 最大的位或(贪心)
- HDU 5969 最大的位或 (思维题 贪心)
- hdu 2721(字符串处理,位运算 暴力)
- hdu 5014 number sequence 贪心
- hdu 5014 Number Sequence(贪心)
- hdu 5014 Number Sequence(贪心)
- 贪心-HDU 5014Number Sequence
- HDU:3333 Turing Tree (树状数组+离线处理+哈希+贪心)
- 【Java编程思想--学习笔记(一)】访问控制-包
- 生成可重集的排列
- 杭电--2015 偶数求和
- 欢迎使用CSDN-markdown编辑器
- 数组
- hdu 5014 贪心+位处理
- 运算符优先级
- android json解析及简单例子
- C++ static 类成员
- arduino mega2560与HC-06蓝牙模块使用
- 【HDU】1394 Minimum Inversion Number(线段树求逆序数)
- android导入工程出现红色感叹号
- HDU 4389 X mod f(x)
- POJ 3723 Conscription(最大生成森林)