题目:

题解:

思路:线性 dp

  • 状态表示:f[i] 表示第 i 天新知道秘密的人数。根据题意有初始条件 f[1]=1,表示第一天新知道秘密的人数为 1 人。
  • 状态计算:这里我们使用的是正向推,由 f[i] 推 f[j],第 i 天新知道秘密的人会把秘密说给
    [i+delay...i+forget-1] 之间的所有人听,由此计算 f[j] 即可。
  • 最终答案为 sum(f[n-forget+1...n]),表示第 n 天结束时,知道秘密的人数。

代码如下:

const int mod = 1e9+7;
class Solution {public:int peopleAwareOfSecret(int n, int delay, int forget) {// f[i]表示第i天新增知道秘密的人数vector<int> f(n+1,0);// 初始值f[1]=1表示第一天知道秘密的人数为1个f[1]=1;for(int i=1;i<=n;++i){// 第i天知道秘密的人都会对[i+delag,i+forget-1]这个区间有贡献,也就是把秘密说给这个区间的人听for(int j=i+delay;j<=min(n,i+forget-1);++j)f[j]=(f[i]+f[j])%mod;}int res=0;// 最终结果就是f[n-forget+1...n]之间新增知道秘密的总人数for(int i=n-forget+1;i<=n;++i){res=(res+f[i])%mod;}return res;}
};

[线性dp]leetcode2327:知道秘密的人数(medium)相关推荐

  1. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  2. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  3. 洛谷P2401 不等数列(线性DP)

    本题使用的是线性DP.就是DP数组难以思考,这里我直接给出 dp[i][j]:表示 1 ~ i 这 i 个数 , 其中j 个 " < " 有几种方法 假设我们已经把 n - ...

  4. CodeForces - 1096D Easy Problem(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串,每个字符都有一个权值,现在需要删除权值和最少的字符,满足字符串中不再含有子序列"hard" 题目分析:线性dp,但我不会,看着题解写的 ...

  5. CodeForces - 456C Boredom(线性dp)

    题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...

  6. POJ - 1050 To the Max(最大连续子段和,线性dp)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵,每个点都有一个权值,现在要从中选取一个子矩阵要求权值和最大,问这个最大权值和是多少 题目分析:因为是要求子矩阵的权值和最大的问题,我们可以直接维护一 ...

  7. 牛客 - 「火」皇家烈焰(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...

  8. CH 5102 Mobile Service(线性DP)

    CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...

  9. 动态规划 —— 线性 DP

    [概述] 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题.区间DP等有固定的模板. 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式 ...

最新文章

  1. PHP学习 文件操作函数的应用--简单网络留言模板
  2. 从WEB SERVICE 上返回大数据量的DATASET
  3. 如何处理SAP OData错误消息: Invalid parametertype used at function XXXX
  4. kafak消费者从头开始消费(消费者组)
  5. call to member function bind_param() on boolean...........
  6. ★LeetCode(1078)——Bigram 分词(JavaScript)
  7. 《深度学习笔记》——线性代数基础
  8. 洛谷 P2486 [SDOI2011]染色 树链剖分
  9. javasctip中文手册javascript视频教程下载
  10. 第九届“泰迪杯”数据挖掘挑战赛C题-建模思路参考
  11. 零中频接收机频率转换图_VHF跳频电台接收机射频前端的仿真设计
  12. 双稳态继电器工作原理图_常见的继电器及工作原理
  13. html radio vue,Vue.js选中动态绑定的radio的指定项_心病_前端开发者
  14. leTV 乐视超级电视上面安装apk
  15. GDF307配置ADC单次采样
  16. ActionList中Action的快捷鍵
  17. linux主分区移动挂载,Linux磁盘分区和挂载
  18. python随机数生成并排序_python_生成随机数与列表排序
  19. linux程序打印cr3寄存器,linux – 每次从内核模块读取时,为什么CR3寄存器内容会有所不同?...
  20. 基于数字签名和指纹按捺的公安询问笔录无纸化解决方案

热门文章

  1. SQL进阶教程—自链接的用法
  2. vue组件走马灯_vue文字横向滚动走马灯公告代码示例
  3. 正睿集训数论专题【8.9】
  4. c51中断优先级c语言,51单片机的中断优先级及中断嵌套
  5. 进博抢先看 | 辉瑞、默沙东、强生、GSK、西门子医疗、蔡司、霍尼韦尔、江森自控、阿迪达斯、迪卡侬、乐高等将亮相第五届进博会...
  6. stormmedia文件夹,360downloads文件夹,FavoriteVideo文件夹是干什么的?
  7. 2月海外域名主机商TOP10:Godaddy居首 雅虎第7
  8. 西门子PLC模拟量输入数据类型变换
  9. map什么意思java_map的意思是什么,java中Maplt;?,?gt;是什么意思
  10. 瀑布流布局:CSS3多列属性column实现