数学发现规律+hdu5014
来源:互联网 发布:剑灵捏脸数据人族 编辑:程序博客网 时间:2024/05/16 10:31
Online JudgeOnline ExerciseOnline TeachingOnline ContestsExercise AuthorF.A.Q
Hand In Hand
Online Acmers
Forum | Discuss
Statistical ChartsBest Coder beta
VIP | STD Contests
Virtual Contests
DIY | Web-DIY beta
Recent Contests
Total Submission(s): 150 Accepted Submission(s): 73
Special Judge
Hand In Hand
Online Acmers
Forum | Discuss
Statistical ChartsBest Coder beta
VIP | STD Contests
Virtual Contests
DIY | Web-DIY beta
Recent Contests
lee
Mail 0(0)
Control Panel
Sign Out
Mail 0(0)
Control Panel
Sign Out
BestCoder官方群:385386683 欢迎加入~
寻人启事:2014级新生看过来!Number Sequence
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 150 Accepted Submission(s): 73
Special Judge
Problem Description
There is a special number sequence which has n+1 integers. For each number in sequence, we have two rules:
● ai ∈ [0,n]
● ai ≠ aj( i ≠ j )
For sequence a and sequence b, the integrating degree t is defined as follows(“⊕” denotes exclusive or):
t = (a0 ⊕ b0) + (a1 ⊕ b1) +···+ (an ⊕ bn)
(sequence B should also satisfy the rules described above)
Now give you a number n and the sequence a. You should calculate the maximum integrating degree t and print the sequence b.
● ai ∈ [0,n]
● ai ≠ aj( i ≠ j )
For sequence a and sequence b, the integrating degree t is defined as follows(“⊕” denotes exclusive or):
(sequence B should also satisfy the rules described above)
Now give you a number n and the sequence a. You should calculate the maximum integrating degree t and print the sequence b.
Input
There are multiple test cases. Please process till EOF.
For each case, the first line contains an integer n(1 ≤ n ≤ 105), The second line contains a0,a1,a2,...,an.
For each case, the first line contains an integer n(1 ≤ n ≤ 105), The second line contains a0,a1,a2,...,an.
Output
For each case, output two lines.The first line contains the maximum integrating degree t. The second line contains n+1 integers b0,b1,b2,...,bn. There is exactly one space between bi and bi+1(0 ≤ i ≤ n - 1). Don’t ouput any spaces after bn.
Sample Input
42 0 1 4 3
Sample Output
201 0 2 3 4
找二进制互补的数进行匹配
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
可以发现,15和16互补,(14,1)(13,2)...也就是他们互补后为1111,即15,所以只要这样进行,就不会有浪费的1
#include<stdio.h>#include<algorithm>#include<string.h>#define N 100010using namespace std;typedef long long LL;LL i,j,k,m,n,x,y,z,sum;LL a[N],b[N];int main(){ while(scanf("%I64d",&n)!=EOF) { for(i=0;i<=n;i++)scanf("%I64d",&b[i]); sum=0; memset(a,0,sizeof(a));m=n; while(n>0) { k=0; for (i=20; i>=0; i--) if ((n&(1<<i))!=0) { k=1<<i; break; } sum+=(n-k+1)*(k*2-1)*2; for (i=n;i+n>=(k*2-1);i--) a[i]=k*2-1-i; n-=(n-k+1)*2; } printf("%I64d\n",sum); for (i=0;i<m;i++)printf("%I64d ",a[b[i]]); printf("%I64d\n",a[b[m]]); } return 0;}
0 0
- 数学发现规律+hdu5014
- 自己发现的数学规律一
- 自己发现的数学规律二
- hdu5014——构造打表找规律
- 从一道面试题中发现的数学规律
- UVa 10254 The Priest Mathematician (组合数学&规律发现&高精度)
- 今日头条笔试【编程题 + 分析过程发现数学规律 + 回溯法】
- 发现一个规律
- 发现规律,优化算法
- 数学一规律
- 数学整除规律
- hdu 4342 数学规律
- hdu4237(数学规律)
- 数学+找规律题
- HDU1719 Friend【数学规律】
- POJ-1019-数学规律
- POJ 1401 -数学规律
- POJ1032-数学规律
- 关于手机连接上WiFi但是部分软件不能上网解决办法
- Jquery实现checkbox全选和反选
- vim user-manual的笔记 Chapter1
- FragmentTransaction
- VMware的Unity模式
- 数学发现规律+hdu5014
- Appium安装教程
- HDU 1849 Rabbit and Grass(nim博弈)
- QT中如何让QTreeWidget某一列可以编辑,如何实现某一列控件的自定义化
- 手把手教你:Boost编译使用报错的解决方法
- 遍历查询的应用
- 如何重启MySQL服务,正确重启mysql
- 使用Vivado HLS实现OpenCV的开发流程
- javascript内存泄露