HDU 4810 这道题 是属于什么类型?
统计每一位出现1的个数 求组合数
直接贴代码
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <string>
#define CL(a,b) memset(a,b,sizeof(a))
#define INF 0x3fffffff
#define MID int mid=(l+r)>>1;
#define ll __int64
using namespace std;
const ll mod=;
ll power(ll a,ll b)
{
if(b==)return ;
if(b==)return a;
ll rem=power(a,b/);
rem=(rem*rem)%mod;
if(b%==)
{
rem*=a;
rem%=mod;
}
return rem%mod;
} ll ni(ll x)
{
return power(x,mod-);
} ll C[][]; void initc()
{
int i,j;
for(i=;i<=;i++)
{
C[i][]=;
}
for(i=;i<=;i++)
{
for(j=;j<=i;j++)
{
C[i][j]=C[i][j-]*(i-j+)*ni(j);
C[i][j]%=mod;
}
}
}
ll val[];
int sum[]; void initval()
{
int i;
val[]=;
for(i=;i<;i++)
{
val[i]=val[i-]*;
val[i]=val[i]%mod;
}
} int main()
{
int n,m;
initc();
initval();
while(scanf("%d",&n)!=EOF)
{
int i,j,maj=,k;
CL(sum,);
ll rem,a;
for(i=;i<n;i++)
{
scanf("%I64d",&a);
j=;
while(a)
{
sum[j]+=a%;
a/=;
j++;
}
if(maj<j-)maj=j-;
}
for(i=;i<=n;i++)
{
rem=;
for(j=;j<=maj;j++)
{
for(k=;k<=i;k+=)
{
if(!(k<=sum[j]&&i-k<=n-sum[j]))continue;
rem+=(val[j]*C[sum[j]][k]*C[n-sum[j]][i-k])%mod;
rem=rem%mod;
}
}
if(i!=)printf(" ");
printf("%I64d",rem);
}
printf("\n");
}
return ;
}
HDU 4810 这道题 是属于什么类型?的更多相关文章
- hdu 2987最大权闭合图模板类型题
/* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:如今要辞退一部分员工.辞退每个员工能够的到一部分利益(能够是负的),而且辞退员工,必须辞退他的下属.求最大利益和辞退的最小人数. 最大权闭 ...
- Hdu 4810
2014-05-02 15:53:50 题目连接 2013年南京现场赛的题目,现场的时候,排在我们前面的队伍基本都过了这题,我们后面的队伍也有不少过了这题,唯独我们没有.. 后来是Qingyu Sha ...
- HDU 4810 Wall Painting
Wall Painting Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- hdu 4810 Wall Painting (组合数学+二进制)
题目链接 下午比赛的时候没有想出来,其实就是int型的数分为30个位,然后按照位来排列枚举. 题意:求n个数里面,取i个数异或的所有组合的和,i取1~n 分析: 将n个数拆成30位2进制,由于每个二进 ...
- 记录一下hdu的几道题
杭州电子科技大学程序设计竞赛 2016‘12-网络同步赛 前几天看到这个比赛,想着要是到时候没事就做一下,但是中午实在太困,加上水平太次,才a了4道题目. 说明:我是看ac人数多少的顺序来做题的. 1 ...
- HDU - 4810 - Wall Painting (位运算 + 数学)
题意: 从给出的颜料中选出天数个,第一天选一个,第二天选二个... 例如:第二天从4个中选出两个,把这两个进行异或运算(xor)计入结果 对于每一天输出所有异或的和 $\sum_{i=1}^nC_{n ...
- hdu 4810 Wall Painting (组合数+分类数位统计)
Wall Painting Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- hdu 2825(ac自动机+状态压缩dp)
题意:容易理解... 分析:在做这道题之前我做了hdu 4057,都是同一种类型的题,因为题中给的模式串的个数最多只能为10个,所以我们就很容易想到用状态压缩来做,但是开始的时候我的代码超时了dp时我 ...
- hdu 1573 X问题
数论题,本想用中国剩余定理,可是取模的数之间不一定互质,用不了,看到网上有篇文章写得很好的:数论——中国剩余定理(互质与非互质),主要是采用合并方程的思想: 大致理解并参考他的代码后便去试试hdu上这 ...
随机推荐
- linux 常用压缩工具快速指南
.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...
- 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行。
近来遇到一个IIS服务启动问题,重启服务器PC后,网站启动的时候,提示“ 万维网发布服务(w3svc)已停止,除非万维网发布服务(w3svc)正在运行”. 解决方法: 点击"开始" ...
- secureCRT命令大全
常用命令:一.ls 只列出文件名-a:列出所有文件,包含隐藏文件.(ll -a)-l:列表形式,包含文件的绝大部分属性.(ll)-r:递归显示.(ll -r)--help:此命令的帮助.(ll --h ...
- Caffe : Layer Catalogue(2)
TanH / Hyperbolic Tangent 类型(type):TanH CPU 实现: ./src/caffe/layers/tanh_layer.cpp CUDA.GPU实现: ./src/ ...
- windows下adb+flash_image刷机
刷机是常事,总要把刷机包放在卡上,然后关机三键一起按到recovery再刷,觉得不爽,麻烦,所以研究出了adb调用flash_image刷system分区,全部脚本windows脚本执行,点点鼠标就o ...
- cf C. Levko and Array Recovery
http://codeforces.com/contest/361/problem/C 这道题倒着一次,然后正着一次,在正着的一次的时候判断合不合法就可以. #include <cstdio&g ...
- 树上莫队 wowow
构建:像线性的莫队那样,依旧是按sqrt(n)为一块分块. int dfs(int x){ ; dfn[x]=++ind; ;i<=;i++) if (bin[i]<=deep[x]) f ...
- Keil 3光标问题 以及汉字问题
初次使用keil3,光标总是定位不准,修改十分麻烦,google后解决问题,修改tools.ini如下(蓝色为加入项): NAME="YGLenovo User", "a ...
- js深入研究之无法理解的js类代码,extend扩展
<script type="text/javascript"> function Person(name) { this.name = name; } Person.p ...
- 【转】 ubuntu12.04更新源
原文网址:http://blog.chinaunix.net/uid-26404477-id-3382633.html 摘 要:本文列出ubuntu 12.04 LTS更新源列表,内容为网友整理,此处 ...