【动态规划】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个数 ...
随机推荐
- RabbitMQ Management HTTP API--官方文档
Introduction Apart from this help page, all URIs will serve only resources of type application/json, ...
- instancetype vs id for Objective-C
instancetype: 使用 instancetype 编译器和IDE 会做类型检查,而id不会做完整的类型检查. A method with a related result type can ...
- OSX10.11 CocoaPods 升级总结
本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...
- ubuntu 查看端口被占用并处理
当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...
- Activity 【生命周期】
不同情况下的回调 我们打开应用时先后调用了onCreate()->onStart()->onResume 当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause( ...
- 失物招领发布-HTML5调摄像头
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- JavaScript--动态更改CSS样式
JavaScript太强大了,虽然是弱语言,不过一点都不输于Java 可以自行设置随机数,来动态更改CSS样式,每一次都是不一样的感觉,这个小功能挺实用的 <!DOCTYPE html> ...
- java判断不为空
因为java是强类型语言,所以判断空的时候分null 和字符串空 if(userID == null || "".equals(userID)){ response.sendRed ...
- 各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异
转载:http://www.w3help.org/zh-cn/causes/BX2047 标准参考 无. 问题描述 一般情况下,onbeforeunload 事件处理函数内会写入一些提示性语句,当用户 ...
- jQuery firefox chrome IE 绑定mousewheel事件
$doc.on('mousewheel DOMMouseScroll',function(){ $htmlBody.stop(true); $goTop.stop(true); });