当前位置:网站首页>P2592 [zjoi2008] birthday party (DP)
P2592 [zjoi2008] birthday party (DP)
2022-07-01 16:40:00 【Harris-H】
P2592 [ZJOI2008] Birthday party (dp)
dp, The key is how to express the difference between men and women .
So set d p ( i , j , k , l ) dp(i,j,k,l) dp(i,j,k,l) To express with i i i A boy , j j j A girl , The biggest difference between boys and girls is k k k, The biggest difference between girls and boys is l l l.
Then enumerate the quadruple loop dp that will do , Enumerate the boys or girls currently playing .
Time complexity : O ( n m k 2 ) O(nmk^2) O(nmk2)
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<list>
#include<queue>
#include<stack>
#include<bitset>
#include<deque>
#include<ctime>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define ri register int
#define il inline
#define fi first
#define se second
#define mp make_pair
#define pairint pair<int,int>
#define mem0(x) memset((x),0,sizeof (x))
#define mem1(x) memset((x),0x3f,sizeof (x))
il char gc()
{
static const int BS = 1 << 22;
static unsigned char buf[BS], *st, *ed;
if (st == ed) ed = buf + fread(st = buf, 1, BS, stdin);
return st == ed ? EOF : *st++;
}
#define gc getchar
template<class T>void in(T &x)
{
x = 0;
bool f = 0;
char c = gc();
while (c < '0' || c > '9')
{
if (c == '-') f = 1;
c = gc();
}
while ('0' <= c && c <= '9')
{
x = (x << 3) + (x << 1) + (c ^ 48);
c = gc();
}
if (f) x = -x;
}
#undef gc
#define pb push_back
#define int ll
#define md 12345678
int n,m,d;
int f[155][155][22][22];
il int max(const int &a,const int &b)
{
return a>b?a:b;
}
signed main()
{
#ifdef M207
freopen("in.in", "r", stdin);
#endif
in(n),in(m),in(d);
f[0][0][0][0]=1;
for(ri i=0;i<=n;++i)
for(ri j=0;j<=m;++j)
for(ri k=0;k<=d;++k)
for(ri h=0;h<=d;++h)
if(f[i][j][k][h])
{
// printf("%lld %lld %lld %lld: %lld\n",i,j,k,h,f[i][j][k][h]);
int tmp=f[i][j][k][h];
(f[i+1][j][k+1][max(h-1,0)]+=tmp)%=md;
(f[i][j+1][max(k-1,0)][h+1]+=tmp)%=md;
}
int ans=0;
for(ri i=0;i<=d;++i)
for(ri j=0;j<=d;++j)
(ans+=f[n][m][i][j])%=md;
printf("%lld",ans);
return 0;
}
边栏推荐
- 圈铁发音,动感与无噪强强出彩,魔浪HIFIair蓝牙耳机测评
- Advantages, values and risks of chain games compared with traditional games
- 【Hot100】20. Valid parentheses
- Go 语言错误处理为什么更推荐使用 pkg/errors 三方库?
- Rhcsa Road
- Ring iron pronunciation, dynamic and noiseless, strong and brilliant, magic wave hifiair Bluetooth headset evaluation
- Action after deleting laravel's model
- 虚拟串口模拟器和串口调试助手使用教程「建议收藏」
- Défaillance lors du démarrage de la machine virtuelle VMware: le poste de travail VMware n'est pas compatible avec hyper - V...
- 【Hot100】17. Letter combination of telephone number
猜你喜欢
数据库系统原理与应用教程(001)—— MySQL 安装与配置:MySQL 软件的安装(windows 环境)
VMware 虛擬機啟動時出現故障:VMware Workstation 與 Hyper-v 不兼容...
德国iF多项大奖加冕,这副耳机有多强?音珀GTW 270 Hybrid深度评测
芯片供应转向过剩,中国芯片日产增加至10亿,国外芯片将更难受
Zhou Shaojian, rare
How to use MySQL language for row and column devices?
Talking from mlperf: how to lead the next wave of AI accelerator
软件工程导论——第六章——详细设计
China's intelligent transportation construction from the perspective of "one hour life circle" in Dawan District
制造业数字化转型究竟是什么
随机推荐
圈铁发音,动感与无噪强强出彩,魔浪HIFIair蓝牙耳机测评
【Hot100】20. 有效的括号
Rhcsa Road
数据库系统原理与应用教程(002)—— MySQL 安装与配置:MySQL 软件的卸载(windows 环境)
免费抽奖 | 《阿巴豆》探索未来系列盲盒数字版权作品全网首发!
Problems encountered in IM instant messaging development to maintain heartbeat
Motion capture system for apple picking robot
苹果自研基带芯片再次失败,说明了华为海思的技术领先性
韩国AI团队抄袭震动学界!1个导师带51个学生,还是抄袭惯犯
Golang爬虫框架初探
Tutorial on the principle and application of database system (001) -- MySQL installation and configuration: installation of MySQL software (Windows Environment)
Bugku's file contains
sql刷题627. 变更性别
How to solve the keyboard key failure of notebook computer
模板引擎Velocity 基础
红队第8篇:盲猜包体对上传漏洞的艰难利用过程
Why is the pkg/errors tripartite library more recommended for go language error handling?
红队第10篇:coldfusion反序列化过waf改exp拿靶标的艰难过程
制造业数字化转型究竟是什么
运动捕捉系统原理