当前位置:首页 > 题解目录 > 正文内容

【题解】核电站问题

亿万年的星光9个月前 (03-28)题解目录533

【题目描述】

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

【输入描述】

输入文件只有多行,每行对应一个正整数N<=40;

【输出描述】

输出文件有多行,每行只有一个正整数,表示方案总数

【样例输入】

1
2
3
4
10

【样例输出】

2
4
7
13
504



【思路】

先求出N=1,2,3时的方案数。dp[i]=dp[i-1]+dp[i-2]+dp[i-3]。i从4开始,如果第i个坑不放,则第1到第i-1个坑可以在符合题意的情况下

随意放,即+dp[i-1];如果第i个坑放,当第i-1个坑不放时,第1到第i-2个坑可以在符合题意的情况下随意放,即+dp[i-2],当第i-1个坑放,第

i-2个坑不放(此时必须不放,因为不可能连续三个坑同时放)时,第1到i-3个坑可以在符合题意的情况下随意放,即+dp[i-3],这就是dp[i]的所有情况了

(因为第i个,i-1个,i-2个不可能同时放)。

【参考答案】

#include <iostream>
using namespace std;
int main() {
	long long dp[50]= {0};
	dp[1]=2;
	dp[2]=4;
	dp[3]=7;
	for(int i=4; i<41; i++)
		dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
	int n;
	while(cin>>n)cout<<dp[n]<<endl;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【题解】求车速问题

【题目描述】一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多...

【题解】修改回文

【题目描述】如果一个字符串,顺读与倒读的内容一样,称这个字符串为回文。例如 aka 是一个回文,noon 也是一个回文。给定一个字符串,请计算最少需要修改多少个字符,才能...

【题解】王国比赛

【题解】王国比赛

【题目描述】智慧之王 Kri 统治着一座王国。 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧。 比赛由 n道判断题组成,有 m位大臣参加。现在你已经知道了所有大臣的答题情况,但尚未拿到答...

【题解】车辆管理

【题目描述】交通管理局长氓氓现在需要一个管理汽车的系统,每一辆汽车都有许多信息需要去记录。 首先,每一辆汽车都有一个独一无二的车牌号 S,车牌号由 7 个字符组成。 然后,对于每一辆车要记录它的排...

【题解】自动晾衣机

【题目描述】有一个环形可以晾衣服的衣架,有若干个夹子组成,它可以晾不同长度的衣服(占用多个夹子),并且每两件衣服中间要有一个空夹子作为空位,下面需要依次晾干几件长度不一的衣服,请你给出某个夹子的使用情...

【题解】最小子序列

【题目描述】给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长...