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 ...
随机推荐
- 使用NATAPP内网穿透工具
准备资料 netapp客户端 百度云下载: 官网下载:https://natapp.cn/#download 按照自己的需求进行下载 可以访问到本地的web服务 下载后解压,获得natapp_wind ...
- CNN结构演变总结(二)轻量化模型
CNN结构演变总结(一)经典模型 导言: 上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等.在本文,将对轻量化模型进行总结分析. 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间 ...
- 十一. SpringCloud Alibaba
1. SpringCloud Alibaba简介 1.1 为什么会出现SpringCloud Alibaba Spring Cloud Netflix项目进入到维护模式 什么是维护模式?=> 将 ...
- AI人脸匹对
人脸匹对 技术 调用到百度的AI接口,layui的图片上传,栅格化布局 核心代码 纯py代码运行 # encoding:utf-8 from aip import AipFace import bas ...
- 如何优雅的移植JavaScript组件到Blazor
Blazor作为一个新兴的交互式 Web UI 的框架,有其自身的优缺点,如果现有的 JavaScript 组件能移植到 Blazor,无疑让 Blazor 如虎添翼,本文就介绍一下自己在开发 Bul ...
- jQuery学习笔记(1) 初识jQuery
目录 目录 引用 注意 HelloWorldHelloWorld! jQueryjQuery对象和DOMDOM对象的相互转换 冲突的解决 引用 本地文件引用: <script src=" ...
- 【ZeyFraのJavaEE开发小知识05】Mybatis-Plus & Axios
关于如何在Mybatis-Plus中添加SQL拦截器 之前ZeyFra在MyBatis-Plus[踩坑记录01]一文中提到过,使用Mybatis-Plus时最好使用MybatisSqlSessionF ...
- P1028_数的计算(JAVA语言)
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(0n≤1000),然后对此自然数按照如下方法进行处理: 不作任何处理; 在它的左边加上一个自然数,但该自然数不能 ...
- Qt添加注释模板
背景 软件:Qt Creator 在写代码的时候我们为了规范化,一般会加文件注释.类注释和函数注释 用注释来说明我们的代码,也方便模块化开发 那么我们在写注释的时候经常会写一些重复的内容,我们会复制粘 ...
- Mybatis日志源码探究
一.项目搭建 1.pom.xml <dependencies> <dependency> <groupId>log4j</groupId> <ar ...