统计每一位出现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 这道题 是属于什么类型?的更多相关文章

  1. hdu 2987最大权闭合图模板类型题

    /* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:如今要辞退一部分员工.辞退每个员工能够的到一部分利益(能够是负的),而且辞退员工,必须辞退他的下属.求最大利益和辞退的最小人数. 最大权闭 ...

  2. Hdu 4810

    2014-05-02 15:53:50 题目连接 2013年南京现场赛的题目,现场的时候,排在我们前面的队伍基本都过了这题,我们后面的队伍也有不少过了这题,唯独我们没有.. 后来是Qingyu Sha ...

  3. HDU 4810 Wall Painting

    Wall Painting Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. hdu 4810 Wall Painting (组合数学+二进制)

    题目链接 下午比赛的时候没有想出来,其实就是int型的数分为30个位,然后按照位来排列枚举. 题意:求n个数里面,取i个数异或的所有组合的和,i取1~n 分析: 将n个数拆成30位2进制,由于每个二进 ...

  5. 记录一下hdu的几道题

    杭州电子科技大学程序设计竞赛 2016‘12-网络同步赛 前几天看到这个比赛,想着要是到时候没事就做一下,但是中午实在太困,加上水平太次,才a了4道题目. 说明:我是看ac人数多少的顺序来做题的. 1 ...

  6. HDU - 4810 - Wall Painting (位运算 + 数学)

    题意: 从给出的颜料中选出天数个,第一天选一个,第二天选二个... 例如:第二天从4个中选出两个,把这两个进行异或运算(xor)计入结果 对于每一天输出所有异或的和 $\sum_{i=1}^nC_{n ...

  7. hdu 4810 Wall Painting (组合数+分类数位统计)

    Wall Painting Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  8. hdu 2825(ac自动机+状态压缩dp)

    题意:容易理解... 分析:在做这道题之前我做了hdu 4057,都是同一种类型的题,因为题中给的模式串的个数最多只能为10个,所以我们就很容易想到用状态压缩来做,但是开始的时候我的代码超时了dp时我 ...

  9. hdu 1573 X问题

    数论题,本想用中国剩余定理,可是取模的数之间不一定互质,用不了,看到网上有篇文章写得很好的:数论——中国剩余定理(互质与非互质),主要是采用合并方程的思想: 大致理解并参考他的代码后便去试试hdu上这 ...

随机推荐

  1. Linux下*.tar.gz文件解压缩命令 find 命令

    1.压缩命令: 命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2.解压缩命令: 命令格式:tar  -z ...

  2. Sphinx编译docs文档

    在使用Python.Django的过程中,经常看到docs目录,里面存放着一些txt文本文件,也就是自带的一些帮助文档,里面有make.bat,在dos目录下直接执行make,给出的帮助是可以转换成H ...

  3. VC2013 添加库文件

    1.项目--〉属性--〉链接器 1. You #include the header file (.h) file in your project as necessary.   2. You lis ...

  4. bug经验

    1.异常信息丢失导致定位问题困难. 2.findbugs工具 3.在某些if语句判断中return,可能会导致文件句柄无法关闭. 4.lastmodified()在win下和linux下的处理是不同的 ...

  5. Java学习笔记--“==”与"equals"

    java中的数据类型,可分为两类: 1. 基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==) ...

  6. SolrCloud初识

    文章摘自:http://www.bubuko.com/infodetail-923588.html 一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Luce ...

  7. GO实例3 Slice append打印

    package main import "fmt" func main(){ ]int slice:=array[:] slice[]='a' slice[]='b' s1:=ap ...

  8. cf Ping-Pong (Easy Version)

    http://codeforces.com/contest/320/problem/B 这道题看了很长时间没看懂, 就是个dfs: #include <cstdio> #include & ...

  9. 用c++编写一个不能被继承的类(但是可以在类外部定义该类的对象)

    据我们知道,我们只要把类的构造函数和析构函数定义为private类型,那么就不能够在外部建立给类的对象,也就不能以给类为基类进行继承,因为如果继承,建立对象的时候将要调用基类的构造函数,但是因为为pr ...

  10. Ajax--xml格式及注意事项

    <?xml version='1.0' ?>//整个标签必须顶格写,version='1.0'是xml的版本号 <Info>//只能有且只有一个根作为最外层标签 <n1& ...