hdu4810
题意:
给你n个数,让你输出n个数,没一次输出的是在这n个数里面取i个数异或的和(所有情况<C n中取i>)。
思路:
首先把所有的数都拆成二进制,然后把他们在某一位上的数字加起来,比如 3 = 11 5 = 101 他俩合并就是 112 就这样吧所有的数都合并了,一共最多32位,然后我们考虑,对于每一位,只有选择奇数个1的时候才会是1,否则就是0 ,所以我们可以一次枚举每一位,比如当前要取6个数,对于第三位有8个1,那么当前的这位就是
C[8][1] * C[N-8][6-1] * 2^3
+ C[8][3] * C[N-8][6-3] * 2^3
+ C[8][5] * C[N-8][6-5] * 2^3
其中变化的那个1 3 5 就是去奇数的情况,每一次取完奇数后乘以剩下的的(6 - 奇数)的情况就是一共有多上中取当前奇数的情况 然后在乘以对应位上产生的数 2^3加在一起就是当要求取6个的时候在第三位上的8个1能产生的价值。
#include<stdio.h>
#include<string.h> #define N 1005
__int64 C[N][N];
__int64 A[40] ,B[40];
__int64 mod = 1000003; void DB_C()
{
C[0][0] = C[1][0] = C[1][1] = B[1] = 1;
for(int i = 2 ;i <= 35 ;i ++)
B[i] = B[i-1] * 2 % mod;
for(int i = 2 ;i <= 1002 ;i ++)
{
C[i][0] = 1;
for(int j = 1 ;j <= i ;j ++)
C[i][j] = (C[i-1][j] + C[i-1][j-1]) % mod;
}
return ;
} int main ()
{
int n ,i ,j ,k ,num;
DB_C();
while(~scanf("%d" ,&n))
{
memset(A ,0 ,sizeof(A));
for(i = 1 ;i <= n ;i ++)
{
scanf("%d" ,&num);
int tt = 0;
while(num)
{
A[++tt] += (num&1);
num /= 2;
}
}
for(i = 1 ;i <= n ;i ++)
{
__int64 ans = 0;
for(j = 1 ;j <= 32 ;j ++)
{
for(k = 1 ;k <= A[j] && k <= i ;k += 2)
{
if(i - k > n - A[j]) continue;
__int64 tmp = C[A[j]][k] * C[n - A[j]][i - k] % mod;
ans = (ans + tmp * B[j]) % mod;
}
}
if(i == 1) printf("%I64d" ,ans);
else printf(" %I64d" ,ans);
}
printf("\n");
}
return 0;
}
hdu4810的更多相关文章
- hdu-4810 Wall Painting(组合数学)
题目链接: Wall Painting Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- HDU-4810-wall Painting(二进制, 组合数)
链接: https://vjudge.net/problem/HDU-4810 题意: Ms.Fang loves painting very much. She paints GFW(Great F ...
随机推荐
- FreeBSD 开发已经迁移至 git
FreeBSD 开发已经迁移至 git 全部预计于 2021 年 3 月完成迁移. https://git.freebsd.org/src.git 或者 https://cgit.freebsd.or ...
- 前端笔记:React的form表单全部置空或者某个操作框置空的做法
1.全部置空的做法,一般在弹出框关闭后,需要重置该form所有表单: this.props.form.resetFields(); 2.针对某个操作框置空的做法 例如,form表单里有一个部门和一个张 ...
- SpringMVC-06 Ajax
SpringMVC-06 Ajax Ajax 1.简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无 ...
- MyBatis:当表字段名和实体类属性名不一致
第一种解决方法:在sql中使用别名 <select id="getRoleList" resultType="com.ttpfx.domain.Role" ...
- windows使用vscode设置免密登录linux服务器
秘钥原理解释 id_rsa.pub是公钥,部署在服务器上 id_rsa是私钥,放在windows本地 本质上它们都是个文本文件 操作流程 生成秘钥对(windows和linux均可) ssh-keyg ...
- Java 并发工具类 CountDownLatch、CyclicBarrier、Semaphore、Exchanger
本文部分摘自<Java 并发编程的艺术> CountDownLatch CountDownLatch 允许一个或多个线程等待其他线程完成操作.假设现有一个需求:我们需要解析一个 Excel ...
- [递推]D. 【例题4】传球游戏
D . [ 例 题 4 ] 传 球 游 戏 D. [例题4]传球游戏 D.[例题4]传球游戏 题目解析 设 t ( i , j ) t(i,j) t(i,j)为过了 j j j轮,轮到 i i i手上 ...
- Hadoop学习笔记—Yarn
目录 一些基本知识 ResourceManager 的恢复 Resource Manager的HA YARN Node Labels YARN Node Attributes Web Applicat ...
- 201871030109-韩诚 实验一 软件工程准备—Blog
项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 软件工程准备-Blog 我的课程学习目标 (1)学习博客园软件开发者学习社区使用技巧和经验(2) 掌握软件工程导论这门课程的基础理论知识 ...
- 安装maven工程报错"Failed to execute goal on project...Could not resolve dependencies for project..."
我在qingcheng_interface中Lifecycle目录下执行install命令后报错"Failed to execute goal on project...Could not ...