HDU6129 Just do it(前缀异或+杨辉三角)
来源:互联网 发布:gtx1070 gpu数据 编辑:程序博客网 时间:2024/06/08 11:19
/*前缀异或+杨辉三角给定一个数组,求m次前缀和异或的结果Lucas定理,C(a,b)是奇数当且仅当把a,b二进制表达后b中1的位置是a中1的位置的子集如果对于两个数n、m,如果(n&m)==m,那么C(n,m)为奇数,否则为偶数。考虑第一个数对后面的贡献次数第一次: 1 0 0 0 0 第二次: 1 1 1 1 1 第三次: 1 2 3 4 5 第四次: 1 3 6 10 15第i个数在第j行的第i+k列的贡献度为C(j+k-2,j-1)次,杨辉三角根据XOR规律,如果为奇数次相当于一次贡献,偶数次没有贡献。*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=2e5+5;int a[maxn];int b[maxn];int n,m;int main(){ int t; scanf("%d",&t); while(t--) { 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)//如果C(j+k-2,j-1)为奇数 { 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;}
阅读全文
0 0
- HDU6129 Just do it(前缀异或+杨辉三角)
- hdu6129 Just do it 2017多校第七场1010 杨辉三角+规律
- HDU6129-Just do it
- hdu6129 Just do it
- HDU6129 Just do it
- HDU6129-Just do it
- HDU6129 Just do it (找规律)
- HDU6129 Just do it【规律】
- hdu 6129 Just do it(杨辉三角)
- Hdu6129 Just do it(2017多校第7场)
- hdu6129 just do it 递推 思维
- HDU6129 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(杨辉三角+lucas \ 记忆化dp)
- 配置tomcat-users.xml
- ccf认证命令行选项90分
- 51nod 1714-B君的游戏(尼姆博弈)
- 【CUGBACM15级BC第22场 C】hdu 5144 NPY and shot
- 【第2章】Python基本元素:数字、字符串和变量
- HDU6129 Just do it(前缀异或+杨辉三角)
- 机器学习基石(2)
- ContentProvider 源码分析---之二
- Manacher总结
- 【BZOJ】1597 [Usaco2008 Mar]土地购买 DP
- 1060. 爱丁顿数(25)
- 启动活动
- 客户端与服务端的互动
- centos 7.2 一键安装lnmp 成功后通过IP访问不了服务器(已解决)