【动态规划】XMU 1588 01序列计数
题目链接:
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1588
题目大意:
给n1个0和n2个1,连续的0不超过k1个,连续的1不超过k2个。问序列有几种(对1000000001(109+1)取模)
n1,n2<=100 k1,k2<=10
题目思路:
【动态规划】
动态规划比较明显。
f[i][j][k][0]表示 i个0 j个1 末尾连续k个0的方案数
f[i][j][k][1]表示 i个0 j个1 末尾连续k个1的方案数
根据最后末尾取0还是取1可以推出状态转移方程。
初始化就是全为0或1的情况。
以下是f[][][][0]的状态转移方程。
当k>1时,f[i][j][k][0]=f[i-1][j][k-1][0]
当k=1时,f[i][j][k][0]=Σ(f[i-1][j][p][1]),p=0..k2;
//
//by coolxxx
//
#include<iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<memory.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
#define eps 1e-8
#define J 10
#define MAX 0x7f7f7f7f
#define PI 3.1415926535897
#define mod 1000000001
#define N 104
#define M 14
using namespace std;
int n,m,lll,ans,cas;
int nn,mm;
int f[N][N][M][];
int main()
{
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
// while(~scanf("%s",s1))
while(~scanf("%d",&n))
{
scanf("%d%d%d",&m,&nn,&mm);
for(i=;i<=nn;i++)f[i][][i][]=;
for(i=;i<=mm;i++)f[][i][i][]=;
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
f[i][j][][]=;
for(k=;k<=mm;k++)
f[i][j][][]=(f[i][j][][]+f[i-][j][k][])%mod;
for(k=;k<=nn;k++)
f[i][j][k][]=max(f[i-][j][k-][],f[i][j][k][]); f[i][j][][]=;
for(k=;k<=nn;k++)
f[i][j][][]=(f[i][j][][]+f[i][j-][k][])%mod;
for(k=;k<=mm;k++)
f[i][j][k][]=max(f[i][j-][k-][],f[i][j][k][]);
}
}
ans=;
for(i=;i<=nn;i++)ans=(ans+f[n][m][i][])%mod;
for(i=;i<=mm;i++)ans=(ans+f[n][m][i][])%mod;
printf("%d\n",ans);
}
return ;
} /*
// //
*/
【动态规划】XMU 1588 01序列计数的更多相关文章
- 【BZOJ4818】序列计数(动态规划,生成函数)
[BZOJ4818]序列计数(生成函数) 题面 BZOJ 题解 显然是求一个多项式的若干次方,并且是循环卷积 或者说他是一个\(dp\)也没有问题 发现项数很少,直接暴力乘就行了(\(FFT\)可能还 ...
- [Sdoi2017]序列计数 [矩阵快速幂]
[Sdoi2017]序列计数 题意:长为\(n \le 10^9\)由不超过\(m \le 2 \cdot 10^7\)的正整数构成的和为\(t\le 100\)的倍数且至少有一个质数的序列个数 总- ...
- BZOJ_4818_[Sdoi2017]序列计数_矩阵乘法
BZOJ_4818_[Sdoi2017]序列计数_矩阵乘法 Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望 ...
- HDU 6348 序列计数 (树状数组 + DP)
序列计数 Time Limit: 4500/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Subm ...
- luogu3702-[SDOI2017]序列计数
Description Alice想要得到一个长度为nn的序列,序列中的数都是不超过mm的正整数,而且这nn个数的和是pp的倍数. Alice还希望,这nn个数中,至少有一个数是质数. Alice想知 ...
- BZOJ4818 序列计数
4818: [Sdoi2017]序列计数 Time Limit: 30 Sec Memory Limit: 128 MB Description Alice想要得到一个长度为n的序列,序列中的数都是 ...
- 【BZOJ 4818】 4818: [Sdoi2017]序列计数 (矩阵乘法、容斥计数)
4818: [Sdoi2017]序列计数 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 560 Solved: 359 Description Al ...
- P3702 [SDOI2017]序列计数
P3702 [SDOI2017]序列计数 链接 分析: 首先可以容斥掉,用总的减去一个质数也没有的. 然后可以dp了,f[i][j]表示到第i个数,和在模p下是j的方案数,矩阵快速幂即可. 另一种方法 ...
- 【BZOJ4818】[Sdoi2017]序列计数 DP+矩阵乘法
[BZOJ4818][Sdoi2017]序列计数 Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望 ,这n个数 ...
随机推荐
- Eclipse debug经常使用基本技巧
1.F5单步调试,步入,进入函数体内部 2.F6单步调试.步过.不进入函数体 3.F7返回 4.F8运行到最后 5.退出时.右键点击右上角Debug选择退出就可以 $(function () { $( ...
- jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
原文:https://docs.jboss.org/author/display/AS7/Java+API+for+RESTful+Web+Services+(JAX-RS) Content Tuto ...
- [转] Java中的访问控制
可见/访问性 在同一类中 同一包中 不同包中 同一包子类中 不同包子类中 public yes yes yes yes yes protected yes yes no ...
- Eclipse混淆文件导入Android Studio Gradle编译报input jar file is specified twice
Eclipse项目中的混淆配置文件 复制到AS中 在混淆的过程中提示如下错误 Error:Execution failed for task ':app:proguardDemoRelease ...
- .net之页面生面周期
# 事件或方法 功能 描述 1 Init 事件 页面初始化 页面生存周期中的第一个阶段是初始化.当 Init 事件发生时,在.aspx 源文件中静态声明的所有控件都已实例化并取其默认值.应该注意的是, ...
- Oracle 安装中遇到的问题
第一次用甲骨文,这期待!虽然mySQL也是甲骨文的. 去官网下了Oracle G11 R2 X64,本人的电脑是64位的win7,没开防火墙. 按照网上众多的教程,做完安装,可是安装过程不是那么的顺利 ...
- EXCEL表格常用函数使用的难点
1. INDIRECT(ref_text,逻辑值) 返回由文本字符串指定的引用.此函数立即对引用进行计算,并显示其内容.ref_text,文本引用说明, (1) A1-样式的引用(逻辑值,T,缺省) ...
- HighCharts常用设置(摘抄笔录)
- [转载]使用兼容ie6 ie7 ie8 FF的text-overflow:ellips
使用兼容ie6 ie7 ie8 FF的text-overflow:ellipsis超出文本显示省略号来代替截取函数更有利于seo,如果使用截取函数,源代码中的标题是显示不完整的,即便是在title属性 ...
- My.Ioc 代码示例——利用 ObjectBuilderRequested 事件实现延迟注册
在使用 Ioc 框架时,一般我们建议集中在一个称为 Composition Root(其含义请参见下面的小注)的位置来注册 (Register) 和解析 (Resolve) 服务.这种做法的目的在于限 ...