hdu 6129 Just do it(递推)
来源:互联网 发布:cpu温度检测软件 编辑:程序博客网 时间:2024/04/30 17:17
Just do it
Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 155 Accepted Submission(s): 79
Problem Description
There is a nonnegative integer sequence a1...n of length n . HazelFan wants to do a type of transformation called prefix-XOR, which means a1...n changes into b1...n , where bi equals to the XOR value of a1,...,ai . He will repeat it for m times, please tell him the final sequence.
Input
The first line contains a positive integer T(1≤T≤5) , denoting the number of test cases.
For each test case:
The first line contains two positive integersn,m(1≤n≤2×105,1≤m≤109) .
The second line containsn nonnegative integers a1...n(0≤ai≤230−1) .
For each test case:
The first line contains two positive integers
The second line contains
Output
For each test case:
A single line containsn nonnegative integers, denoting the final sequence.
A single line contains
Sample Input
21 113 31 2 3
Sample Output
11 3 1
把每次变换的系数记录下来后可以发现是个杨辉三角,就拿第一个数字在每次变换后对后面的异或次数举例
1 0 0 0 0
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
斜着看,可以发现这是个杨辉三角 第x次变换第y项是C(x+y-2,y-1);这是第一个数在第x次变换后对第y项的异或次数,后面的数可以依次类比
因为是杨辉三角,所以第一个数对第2个数如果是奇数次异或,那么第二个数对第三个数也是奇数次异或,后面的情况同理
利用 C(n,m),如果n&m==m则C(n,m)来快速判断奇偶异或次数
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <map>#include <queue>using namespace std;typedef long long ll;const int N = 2e6+10, inf = 0x3f3f3f3f;int a[N], b[N];int main(){ int t; scanf("%d", &t); while(t--) { int n, m; scanf("%d %d", &n, &m); memset(b,0,sizeof(b)); for(int i=1; i<=n; i++) { scanf("%d", &a[i]); //b[i]=a[i]; } for(int i=1;i<=n;i++) { int nn=m+i-2,mm=i-1; if((nn&mm)==mm) { for(int j=i;j<=n;j++) b[j]^=a[j-i+1]; } } for(int i=1;i<=n;i++) printf("%d%c",b[i],i==n?'\n':' '); } return 0;}
阅读全文
1 0
- hdu 6129 Just do it(递推)
- hdu 6129 Just do it(递推)
- hdu 6129 Just do it (规律递推)
- HDU 6129 Just do it(递推)
- HDU 6129 Just do it
- HDU 6129 Just do it
- HDU 6129 Just do it
- HDU 6129Just do it
- HDU-6129 Just do it
- hdu 6129 Just do it
- hdu 6129 Just do it
- HDU 6129 Just do it
- HDU 6129 Just do it
- hdu--6129--Just do it
- HDU 6129 Just do it
- hdu6129 just do it 递推 思维
- HDU-Just do it
- 2017多校联合第七场1010/hdu 6129 Just do it(递推/杨辉三角)
- Mac端口占用
- freeswitch系列一 在debian中安装freeswitch1.6
- hdu 6130 _数学规律
- Android WallpaperManager
- Grunt的配置和使用
- hdu 6129 Just do it(递推)
- 1054: 猴子吃桃
- 《三体》读后思考-泰勒展开/维度打击/黑暗森林
- D
- 遍历数组 iterator方法和for方法
- 继承之构造器借用法
- 神经网络学习笔记
- Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP
- 100亿MongoDB瓦片出图 性能测试报告