题目描述

核电站问题
  一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。
  任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数。

输入格式:

  输入文件只一行,两个正整数N,M( 1 < N < 50,2 ≤ M ≤ 5 )

输出格式:

  输出文件只有一个正整数S,表示方案总数。

输入样例#1:

4 3

输出样例#1:

13

【解题分析】

设dp[i]为前i个物质的方案数,dp[i]的值有两个递推来源:对于当前第i个坑,放或不放核物质就有方案数dp[i-1]×2,但是当第i个坑放入核物质的时候,还要排除可能存在的连续m个坑核物质爆炸的问题:○○○|○...○○○●,所以当第i个坑放入核物质,要排除会爆炸的情况:前面刚好有m-1个坑的核物质,同时,如果前面m-1个坑都有核物质,则m-1前面的那个位置必然不会是核物质(否则就变成连续m个核物质,直接爆炸了),所以要排除掉这种情况:f[i-m-1],另外还有特殊情况是前面刚好只有m-1个坑,加上第i个坑共m个坑,这也是一种爆炸情况。

另外,n的值去到50,大于32,小于64,需要用到long long类型。

【参考代码】

#include<cstdio>
using namespace std;
long long dp[55];
int n,m;
int main(){scanf("%d%d",&n,&m);dp[1]=2;dp[0]=1;for(int i=2;i<=n;i++){dp[i]=2*dp[i-1];if(i==m)dp[i]--;if(i>m) dp[i]-=dp[i-m-1];}printf("%lld",dp[n]);return 0;
} 

【解题】核电站问题(SGOI)相关推荐

  1. 常见的前端考试面试题目【vue,react,css,six】

    常见的vue,javascript,css前端面试题 1.Vue2和Vue3的区别至少说5点 2.Vue3中组件通信的流程[父传子,子传父] 3.Apply/call/bind的原理是什么? 4.说说 ...

  2. 前端面试题【131道】

    前端面试题 1.vue2和vue3的主要区别 3.Apply/call/bind的原理是什么? 4.说说你对原型和原型链的理解? 5.说说你对ES6中Generator的理解 6.说说你对Event ...

  3. 核电站问题 解题报告

    核电站问题(SGOI) Time Limit:10000MS  Memory Limit:65536K Description 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核 ...

  4. 【OJ】1402: 核电站问题

    1402: 核电站问题 题目描述 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续3个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质.现在,请你计算:对于给定的N,求不发生爆炸 ...

  5. 通用解题法——回溯算法(理解+练习)

    积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...

  6. 读书笔记2013第13本:《怎样解题》

    <怎样解题>这本书是在看<编程大师访谈录>(中文版第12页)这本书时无意发现的,一个编程大师推荐这本书来指导编程设计,google到这本书后粗略地翻看了一遍,发现是一本教学生如 ...

  7. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  8. 常量元素记忆口诀_化学口诀表:帮助学生加深记忆提高解题正确率

    化学口诀表:帮助学生加深记忆提高解题正确率! 有这样一种说法,化学是理科中的文科.意思是说,化学虽说属于理科,可也如同文科一样,要背.要记的东西很多.不少学生就是因常见的化学元素符号等基本内容记不住而 ...

  9. 同底数幂比较大小方法_初中数学解题技法19.幂的运算

    19.幂的运算 [分析] A选项为合并同类项,应把系数相加:B选项为同底数幂的乘法,底数不变,指数相加:C选项中x项的指数为1:D选项中负因数的奇次幂为负. [解] 答案选D [反思] [举一反三] ...

最新文章

  1. Sql Server 2008 无法启动T-Sql调试问题的解决方案
  2. 做CEO,一定要有“江湖感”
  3. ARM 架构(V7,V8),和ARM内核区别,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57
  4. 计算机硕士工资情况收集
  5. java 反射 参数名_JAVA 8 反射获取参数名
  6. 转载+记录数据增广的八种常用方式
  7. BZOJ 1008 [HNOI2008]越狱
  8. 【Henu ACM Round#19 A】 Vasya the Hipster
  9. [转]el-table表格翻页后仍记忆所选项
  10. 计算机函数sun怎么用,excel函数怎么使用
  11. android 数据结构详情,Android数据结构与算法(一):基础简介
  12. 行业领军的高压线性恒流驱动IC,真正长寿的半导体线性IC
  13. MV* 模式梳理与理解(还原真实的 MV* 模式)
  14. BP神经网络实现实例1曲线拟合
  15. 图片生成二维码最好的工具
  16. 游戏开发程序员可能会遇到的英文单词
  17. 企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法
  18. 课堂纪律一团糟老师应该怎么办?
  19. 电脑做笔记用什么软件好
  20. OpenMP 并行处理

热门文章

  1. 回复差评经典话术模板
  2. 瑞芯微RK PX30中文详解(带开源资料)简介
  3. Google浏览器密码框自动弹出账号密码的解决方法
  4. TCP通信多发多收,和接收多个客户端消息
  5. Cesium之3D拉伸显示行政区
  6. 神经网络属于分类算法吗,神经网络分类特点区别
  7. 苹果iPhone手机如何安装Tiktok?最新IOS苹果TikTok抖音国际版下载免拔卡安装使用教程
  8. 使用disk genius合并C盘和D盘
  9. eclipse Luna 用tomct7 部署项目
  10. 如何使用chatGPT生成小红书种草文案