题目链接:

  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序列计数的更多相关文章

  1. 【BZOJ4818】序列计数(动态规划,生成函数)

    [BZOJ4818]序列计数(生成函数) 题面 BZOJ 题解 显然是求一个多项式的若干次方,并且是循环卷积 或者说他是一个\(dp\)也没有问题 发现项数很少,直接暴力乘就行了(\(FFT\)可能还 ...

  2. [Sdoi2017]序列计数 [矩阵快速幂]

    [Sdoi2017]序列计数 题意:长为\(n \le 10^9\)由不超过\(m \le 2 \cdot 10^7\)的正整数构成的和为\(t\le 100\)的倍数且至少有一个质数的序列个数 总- ...

  3. BZOJ_4818_[Sdoi2017]序列计数_矩阵乘法

    BZOJ_4818_[Sdoi2017]序列计数_矩阵乘法 Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望 ...

  4. HDU 6348 序列计数 (树状数组 + DP)

    序列计数 Time Limit: 4500/4000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Subm ...

  5. luogu3702-[SDOI2017]序列计数

    Description Alice想要得到一个长度为nn的序列,序列中的数都是不超过mm的正整数,而且这nn个数的和是pp的倍数. Alice还希望,这nn个数中,至少有一个数是质数. Alice想知 ...

  6. BZOJ4818 序列计数

    4818: [Sdoi2017]序列计数 Time Limit: 30 Sec  Memory Limit: 128 MB Description Alice想要得到一个长度为n的序列,序列中的数都是 ...

  7. 【BZOJ 4818】 4818: [Sdoi2017]序列计数 (矩阵乘法、容斥计数)

    4818: [Sdoi2017]序列计数 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 560  Solved: 359 Description Al ...

  8. P3702 [SDOI2017]序列计数

    P3702 [SDOI2017]序列计数 链接 分析: 首先可以容斥掉,用总的减去一个质数也没有的. 然后可以dp了,f[i][j]表示到第i个数,和在模p下是j的方案数,矩阵快速幂即可. 另一种方法 ...

  9. 【BZOJ4818】[Sdoi2017]序列计数 DP+矩阵乘法

    [BZOJ4818][Sdoi2017]序列计数 Description Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数.Alice还希望 ,这n个数 ...

随机推荐

  1. RabbitMQ Management HTTP API--官方文档

    Introduction Apart from this help page, all URIs will serve only resources of type application/json, ...

  2. instancetype vs id for Objective-C

    instancetype: 使用 instancetype 编译器和IDE 会做类型检查,而id不会做完整的类型检查. A method with a related result type can ...

  3. OSX10.11 CocoaPods 升级总结

    本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...

  4. ubuntu 查看端口被占用并处理

    当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...

  5. Activity 【生命周期】

    不同情况下的回调 我们打开应用时先后调用了onCreate()->onStart()->onResume 当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause( ...

  6. 失物招领发布-HTML5调摄像头

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  7. JavaScript--动态更改CSS样式

    JavaScript太强大了,虽然是弱语言,不过一点都不输于Java 可以自行设置随机数,来动态更改CSS样式,每一次都是不一样的感觉,这个小功能挺实用的 <!DOCTYPE html> ...

  8. java判断不为空

    因为java是强类型语言,所以判断空的时候分null 和字符串空 if(userID == null || "".equals(userID)){ response.sendRed ...

  9. 各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异

    转载:http://www.w3help.org/zh-cn/causes/BX2047 标准参考 无. 问题描述 一般情况下,onbeforeunload 事件处理函数内会写入一些提示性语句,当用户 ...

  10. jQuery firefox chrome IE 绑定mousewheel事件

    $doc.on('mousewheel DOMMouseScroll',function(){ $htmlBody.stop(true); $goTop.stop(true); });