题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5170

题解链接:https://blog.csdn.net/papapa_swust/article/details/77745984

代码:

#include <bits/stdc++.h>
#define MAX 1000000+100
#define MOD 1000000007
using namespace std;
/*
zoj 3747  dp 递推 */
typedef long long ll;
int n,m,k;
ll dp[MAX][3];//dp[i][0]:表示第 i 个位置 放 0 (G士兵) 的方法数目,一直放满 N 个位置
ll solve(int u,int v)
{//初始化dp[0][0] = dp[0][1] = 0;dp[0][2] = 1;ll sum = 0;for (int i=1;i<=n;++i){sum = ( dp[i-1][0] + dp[i-1][1] + dp[i-1][2] )%MOD;dp[i][2] = sum;// 对于G士兵 if ( i <= u)dp[i][0] = sum;else if ( i == u +1) dp[i][0] = sum-1;else dp[i][0] = (sum - dp[i-u-1][1] - dp[i-u-1][2] ) % MOD;//对于R士兵if ( i <= v)dp[i][1] = sum;else if ( i == v +1) dp[i][1] = sum-1;else dp[i][1] = ( sum - dp[i-v-1][0] - dp[i-v-1][2] ) % MOD;} return  ( ( dp[n][0] + dp[n][1] + dp[n][2] ) % MOD );
}int main ()
{while(~scanf("%d%d%d",&n,&m,&k)){ll ans = solve(n,k);cout << ( ( (ans - solve(m-1,k))%MOD +MOD ) % MOD) << endl;}return 0;
} 

转载于:https://www.cnblogs.com/yuluoluo/p/8833814.html

zoj 3747 dp递推相关推荐

  1. Two Arrays(DP递推)

    You are given two integers nn and mm. Calculate the number of pairs of arrays (a,b)(a,b) such that: ...

  2. HDU 4489 (DP递推计数)

    DP 递推计数 题意: 这是一道比较神奇的题,很考验思维:有n个高低不同的人,现在需要进行排列,排列一定要满足两种方式 高低高··· 低高低··· 求出有多少排列方式. 思路: 我们的切入点是第i个人 ...

  3. 动态规划入门之dp递推~

    欢迎访问https://blog.csdn.net/lxt_Lucia-- 宇宙第一小仙女\(^o^)/--萌量爆表求带飞=≡Σ((( つ^o^)つ~ dalao们点个关注呗-- 本篇文章重在递推,不 ...

  4. hdu 1723 DP/递推

    题意:有一队人(人数 ≥ 1),开头一个人要将消息传到末尾一个人那里,规定每次最多可以向后传n个人,问共有多少种传达方式. 这道题我刚拿到手没有想过 DP ,我觉得这样传消息其实很像 Fibonacc ...

  5. POj 3420 Quad Tiling 状态压缩DP+递推+矩阵快速幂

    哈哈,写了好久的,总算对了. 接下来介绍两种思路: 先介绍一种   递推+矩阵的快速幂的方法 一种DP的思想考虑4×n的最后一列  ,可以放的方法一共有5种 1.放4个 1×2  则 为dp[n-2] ...

  6. BZOJ 3329: Xorequ(数位dp+递推)

    传送门 解题思路 可以把原式移项得\(x\)^\(2x\)=\(3x\),而\(x+2x=3x\),说明\(x\)二进制下不能有两个连续的\(1\).那么第一问就是一个简单的数位\(dp\),第二问考 ...

  7. Power oj2498/DP/递推

    power oj 2498 /递推 2498: 新年礼物 Time Limit: 1000 MS Memory Limit: 65536 KB Total Submit: 12 Accepted: 3 ...

  8. HDU-5965 扫雷(dp / 递推)

    传送门 扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态.如果一个己知 ...

  9. 2019.08.20【NOIP提高组】模拟 B 组 排序、DP+递推、矩阵乘法+数位DP/类欧

    文章目录 0 旅游(travel) 1 做梦(dream) 2 数数(count) 初见时,她说,"我无力自保,无处可去,无人可依." 多年后,他说,"我教你射箭,你已有 ...

  10. 2019ccpc秦皇岛 Invoker(dp / 递推)

    传送门 Problem Description 在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可 ...

最新文章

  1. 一文聊透 Dubbo 优雅停机
  2. python turtle画气球-python windows下显示托盘区气球消息
  3. struts2之OGNL用法
  4. 如何Docker化任意一个应用
  5. 数据结构-树和二叉树01(定义、度、深度、有序树、森林)
  6. leetcode 421. Maximum XOR of Two Numbers in an Array | 421. 数组中两个数的最大异或值(位运算,Trie前缀树)
  7. HC-05蓝牙模块AT指令调试
  8. 如果美图可以把妹,如何用技术手段做一个会拍照的程序员?
  9. 使用hessian+protocol buffer+easyUI综合案例--登陆
  10. Kubernetes-存储卷Volume
  11. chromium的部署工具depot_tools和gclient
  12. 计算机软件工程师报名条件,中级软件工程师证书报考条件有哪些要求?
  13. gtp6 linux 启动_glibc.i686安装
  14. 仿牛客网讨论社区项目—项目总结及项目常见面试题
  15. ps做手机计算机界面,用PS制作手机UI界面设计
  16. 7-6 jmu-python-随机生成密码 (10 分)习题解答
  17. 计算机开机太慢了,电脑开机速度慢怎么办?3分钟加快电脑开机速度
  18. 长短期记忆网络 Long Short-Term Memory
  19. 我学习网络管理员的第一步---各个时期的基本要求
  20. 【Adapter模式】C++设计模式——适配器

热门文章

  1. (14)数据结构-二叉排序树
  2. 服务器获取用户信息失败是什么原因,花粉俱乐部获取用户信息失败怎么解决?花粉俱乐部登录失败是什么原因?[多图]...
  3. pandas获取符合条件值的索引
  4. 利用caffe的Python接口生成prototxt文件
  5. caffe FCN Ubuntu16.0
  6. 图像处理中滤波(filtering)与卷积(convolution)的区别
  7. oracle查询显示小写,oracle查询区分大小写
  8. 为什么使用事务?如何实现声明式事务?
  9. new mediacontroller(this) this报错_面试官问你JS的this指向,你能跟他聊多少?
  10. windows制作docker镜像_优秀软件推荐-微软官方工具升级windows或制作启动U盘及镜像...