博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1037生日聚会
阅读量:6812 次
发布时间:2019-06-26

本文共 912 字,大约阅读时间需要 3 分钟。

题目:

任意区间的话,可以从所有后缀区间考虑。

  因为每一个区间一定是某一时刻的一个后缀区间,所以只要每一时刻的后缀区间均合法,就行了。

当然有状态是几个男孩、几个女孩,还可以记录状态:最大的男孩减女孩的差 和 最大的女孩减男孩的差,这样就能转移了。

没错,只要关注后缀区间就行了!所以是max(0,u-1)而不是维持u不变!(当它是负数的时候就不用管了,因为已经且仅体现在另一维中)

#include
#include
#include
#define ll long longusing namespace std;const int N=155,K=25;const ll mod=12345678;int n,m,k;ll dp[N][N][K][K],ans;int main(){ scanf("%d%d%d",&n,&m,&k); dp[0][0][0][0]=1; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) for(int u=0;u<=k;u++) for(int v=0;v<=k;v++) { (dp[i+1][j][u+1][max(0,v-1)]+=dp[i][j][u][v])%=mod; (dp[i][j+1][max(0,u-1)][v+1]+=dp[i][j][u][v])%=mod; } for(int u=0;u<=k;u++)for(int v=0;v<=k;v++)(ans+=dp[n][m][u][v])%=mod; printf("%lld",ans); return 0;}

 

转载于:https://www.cnblogs.com/Narh/p/9133446.html

你可能感兴趣的文章
精通汇编语言,有兴趣一起搞破解的请进!
查看>>
一步一步写一个简单通用的makefile(三)
查看>>
asp and javascript: sql server export data to csv and to xls
查看>>
一起谈.NET技术,.NET框架:为什么我们要尽量使用框架内建的功能,而不是重新发明...
查看>>
云计算中我们是否需要LAMP的PaaS?
查看>>
研究称Android内核存在漏洞 黑客可窃取电邮
查看>>
C#缺省参数可以让代码变得更加简洁明了与时俱进心里敞亮了很多了
查看>>
【自然框架】js版的QuickPager分页控件 V2.0
查看>>
poj-2049 Finding Nemo *
查看>>
模块化编程本质探讨
查看>>
java中equals和==的区别
查看>>
利用博客与视频分享和交流知识和经验
查看>>
知道二叉树前序和中序序列打印后序序列
查看>>
js操作dom对象
查看>>
由于未能创建 Microsoft Visual C# 2008 编译器,因此未能打开项目
查看>>
小例子背后的大道理——从DIP中“倒置”的含义说接口的正确使用
查看>>
Windows 8 异步编程
查看>>
基本控件使用实例-用户登录设计
查看>>
[转]javascript图片放大效果
查看>>
Jquery常用技巧(3)
查看>>