\(状态很容易设计\)

\(设dp[i][j][u][v]表示放了i个1兵种和j个2兵种\)

\(然后u不会0说明末尾放了连续u个1兵种,v不为0说明末尾放了连续v个2兵种\)

#include <bits/stdc++.h>
using namespace std;
const int mod=1e8;
int dp[109][109][11][11],ans;
int main()
{
int n1,n2,k1,k2;
cin>>n1>>n2>>k1>>k2;
dp[0][0][0][0]=1;
dp[1][0][1][0]=1;
dp[0][1][0][1]=1;
for(int i=0;i<=n1;i++)
for(int j=0;j<=n2;j++)
{
for(int q=2;q<=min(i,k1);q++)
dp[i][j][q][0]=(dp[i][j][q][0]+dp[i-1][j][q-1][0])%mod; for(int q=2;q<=min(j,k2);q++)
dp[i][j][0][q]=(dp[i][j][0][q]+dp[i][j-1][0][q-1])%mod; for(int q=1;q<=min(j,k2);q++)
dp[i][j][1][0]=(dp[i][j][1][0]+dp[i-1][j][0][q])%mod; for(int q=1;q<=min(i,k1);q++)
dp[i][j][0][1]=(dp[i][j][0][1]+dp[i][j-1][q][0])%mod;
}
for(int i=1;i<=k1;i++) ans+=dp[n1][n2][i][0];
for(int i=1;i<=k2;i++) ans+=dp[n1][n2][0][i];
cout<<ans%mod;
}

最新文章

  1. .net Socket 通信简单实例(初级入门)
  2. 继承映射关系 TPH、TPT、TPC&lt;EntityFramework6.0&gt;
  3. 一鼓作气 博客--第六篇 note6
  4. Linux WebServer WebRoot Path Identification
  5. 取消chrome浏览器下input和textarea的默认样式
  6. jquery easyui Combobox 实现 两级联动
  7. oracle 的一点累积
  8. 摇滚吧HTML5!有声前端交互!(Hello, Jsonic!)
  9. 进入MFC讲坛的前言(四)
  10. String,StringBuilder,StringBuffer
  11. PAT1010
  12. 修改了SpringBoot的主类名称后,gradle build报错的解决办法
  13. 《SQL CookBook 》笔记-准备工作
  14. 文本分类实战(七)—— Adversarial LSTM模型
  15. 写一个带文本菜单的程序,菜单项如下 (1) 取五个数的和 (2) 取五个数的平均值 (X) 退出。
  16. Git——入门操作加创建账号【三】
  17. python迭代器的说明
  18. java --&gt; Long和long/Integer和int
  19. Delphi 的内存操作函数(5): 复制内存
  20. 网络层 运输层 NAT路由器 NATP路由器 一根光纤 多个固定ip

热门文章

  1. 谁说.NET不适合搞大数据,机器学习、人工智能
  2. 009-数组-C语言笔记
  3. AJ学IOS 之微博项目实战(1)微博主框架-子控制器的添加
  4. QMS产品 - MasterControl 质量管理活动
  5. 记一个openwrt reboot异步信号处理死锁问题
  6. Daily Scrum 12/18/2015
  7. R - C Looooops POJ - 2115 (exgcd)
  8. 计算机系统基础学习笔记(1)-基本GCC,objdump,GBD命令的使用
  9. test_HTMLTestRunnerCN.py
  10. Go gRPC进阶-proto数据验证(九)