HDU 6129 Just do it
2017-08-17 15:08
344 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6129
题意:给你一个包含n个数的序列A和一个数m,序列B中的数是序列A经过异或得到的,比如:b[i]=a[1]^a[2]^…..^a[i]。现在让你求经过m次异或后,序列B的值。
题解:结果:
表格中的数字是不是很眼熟,这就是一个变了形状的杨辉三角(且每一项的系数都是杨辉三角),且第x次变换第y项是C(x+y-2,y-1),即a的系数;故考虑第一项对后面每一项的贡献(也就是a的系数)是奇数还是偶数,是奇数的时候才有贡献。
而如果第一项对第i个数有贡献(是奇数),那么第二项对第i+1个数也有贡献(是奇数)。(根据这个跑循环)
现在的重点就是如何确定C(x+y-2,y-1)是奇数;给出结果,如果n&m==m,则C(n,m)为奇数。
如果对证明过程很感兴趣,链接如下:
https://wenku.baidu.com/view/f15e9b661eb91a37f1115c23.html
代码:
题意:给你一个包含n个数的序列A和一个数m,序列B中的数是序列A经过异或得到的,比如:b[i]=a[1]^a[2]^…..^a[i]。现在让你求经过m次异或后,序列B的值。
题解:结果:
表格中的数字是不是很眼熟,这就是一个变了形状的杨辉三角(且每一项的系数都是杨辉三角),且第x次变换第y项是C(x+y-2,y-1),即a的系数;故考虑第一项对后面每一项的贡献(也就是a的系数)是奇数还是偶数,是奇数的时候才有贡献。
而如果第一项对第i个数有贡献(是奇数),那么第二项对第i+1个数也有贡献(是奇数)。(根据这个跑循环)
现在的重点就是如何确定C(x+y-2,y-1)是奇数;给出结果,如果n&m==m,则C(n,m)为奇数。
如果对证明过程很感兴趣,链接如下:
https://wenku.baidu.com/view/f15e9b661eb91a37f1115c23.html
代码:
#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> using namespace std; int a[2050000]; int b[2050000]; 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 y=i-1; int x=i+m-2; if((x&y)==y)///判断为奇数 { for(int j=i; j<=n; j++) b[j]^=a[j-i+1]; } } for(int i=1; i<=n; i++) { if(i>1) printf(" "); printf("%d",b[i]); } printf("\n"); } }
相关文章推荐
- HDU 6129 Just do it(杨辉三角)
- hdu 6129 Just do it(递推)
- HDU 2017 多校联合训练赛7 1010 6129 Just do it 杨辉三角 组合数的奇偶判断
- hdu 6129 Just do it(递推)
- (2017多校训练第七场)HDU - 6129 Just do it
- hdu 6129 Just do it(递推)
- hdu 6129 Just do it
- HDU 6129 Just do it【杨辉三角+思维+Lucas定理】
- hdu 6129 Just do it(递推)
- HDU-6129 Just do it - 2017 Multi-University Training Contest - Team 7(规律、杨辉三角、组合数奇偶性)
- HDU 6129 Just do it(多校7, 组合数 规律)
- hdu 6129 Just do it(递推)
- 【多校训练】hdu 6129 Just do it
- 2017多校第7场 HDU 6129 Just do it 找规律
- hdu 6129 Just do it(递推)
- 2017杭电多校第七场1010 Just do it(数论,杨辉三角)HDU 6129
- HDU 6127 Hard challenge+HDU 6129 Just do it【2017多校联赛】
- HDU 6129 Just do it
- hdu 6129 Just do it(递推)
- HDU 6129 Just do it(递推)