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上这 ...
随机推荐
- ajax初学
//参数说明url:请求文件地址//fnSucc:请求成功执行的函数,请求成功的条件为readyState状态码为4:且status状态码为200,status状态为浏览器请求返回的状态码//在fnS ...
- Regular expression cheat sheet
\s white-space characters \S Non-white-space characters \d digital numbers \D non-digital numbers \w ...
- GO求平均值
package main import "fmt" func main(){ sum:=0.0 avg:=0.0 xs:=" switch len(xs){ : avg= ...
- logstash 利用drop 丢弃过滤日志
input { stdin { } } filter { grok { match => ["message","\s*%{TIMESTAMP_ISO8601}\s ...
- 第34讲 UI组件之 ProgressDialog和Message
第34讲UI组件之 ProgressDialog和Message 1.进度对话框 ProgressDialog <1>简介 ProgressDialog是AlertDialog类的一个扩展 ...
- python标准库之字符编码详解
codesc官方地址:https://docs.python.org/2/library/codecs.html 相关帮助:http://www.cnblogs.com/huxi/archive/20 ...
- TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)
以下解说在详细应用中,event与中断ISR的设置.以对QM的queue监控产生中断(不是EXCEP)为例,主要包含配置QM accumulator(用于监控QM queue)与配置ISR(ISR与e ...
- 为iPhone6设计自适应布局(二)
Size Classes 自适应布局的布局约束自然是好东西,但也不是万能的,有时候我们也需要使用最基本的布局,所以使用size classes将它们两者结合起来才能碰撞出更有激情的火花. 引用我上篇译 ...
- TableView数据源方法的执行顺序
UITableView显示数据的过程 1.调用一次tableView:numberOfRowsInSection:方法确定行数 2.调用多次tableView:heightForRowAtIndexP ...
- 使用VTemplate模板引擎动态生成订单流程图
1.VTemplate模板引擎的简介 VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何人使用简单的类似HTML语法的模板语言来引用.NET里定义的对象.当VTemplate ...