[题解]2017 多校7 — Just do it
来源:互联网 发布:js时间倒计时代码 编辑:程序博客网 时间:2024/06/06 05:12
题目
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.
输入
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 integers n,m(1≤n≤2×105,1≤m≤109).
The second line contains n nonnegative integers a1…n(0≤ai≤230−1).
输出
For each test case:
A single line contains n nonnegative integers, denoting the final sequence.
样例输入
2
1 1
1
3 3
1 2 3
样例输出
1
1 3 1
Hint
借用别人博客的一张图:
由图中的规律发现这是一个杨辉三角,其中x = m + i - 2 , y = i - 1 。 我们不必把组合数的具体值算出,由于题目是异或运算,故只要知道组合数的奇偶性即可。若((x & y) == y ), 则组合数为奇数,反之则为偶数(Lucas定理)。
#include<bits/stdc++.h>using namespace std ;typedef pair<int , int> P ;typedef long long LL ;const int INF = 0x3f3f3f3f ;int a[200000 + 10 ] , b[200000 + 10];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]) ; } for(int i = 1 ;i <= n ; i++){ int x = m + i - 2 ; int y = i - 1 ; if((x & y ) == y){ int t = 1 ; for(int j = i ; j <= n ; j++){ b[j] ^= a[t++] ; } } } for(int i = 1 ; i <= n ; i++){ printf("%d%c",b[i],i == n ? '\n': ' ') ; } } return 0;}
阅读全文
0 0
- [题解]2017 多校7 — Just do it
- 2017多校 Just do it (Hdu 6129)
- Hdu6129 Just do it(2017多校第7场)
- Just do it
- Just do it!
- Just do it!
- Just do it!
- just do it!
- Just do it!
- Just do it...
- Just do it
- Just do it!
- Just do it
- Just do it!
- just do it
- Just do it
- Just do it!
- just do it
- ecmall 入口文件分析
- mongoose实现权限查询控制
- //请求数据, 省流量模式实现,下载安装,sdcard存储
- SSM(spring+springMVC+Mybatis)简单整合
- HDU 6170 Two strings dp || 正则
- [题解]2017 多校7 — Just do it
- 阿里云新一代关系型数据库 PolarDB 剖析
- C++线程池原理及创建(转)
- cocoapods 错误
- (总结)IO之File类<一>
- git -- 常用命令
- 使用netty自定义rpc通信框架(提供测试用例和源码)
- 《Flowable基础二十一 Flowable springboot 集成》
- poj 1860 Currency Exchange (spfa)