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

【题解】核电站问题

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

【题目描述】

一个核电站有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;
}


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

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

分享给朋友:

相关文章

【题解】寻找祖先

【题解】寻找祖先

【题目描述】给出充足的父子关系,请你编写程序找到某个人的最早的祖先。规定每个人的名字都没有空格,且没有任意两个人的名字相同。最多可能有1000组父子关系,总人数最多可能达到50000人,家谱中的记载不...

数列分段

题目描述对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。输入格式第1行包含两个正整数N,M,表示了数列A[i...

数列

数列

【题目描述】有一个分数序列求出这个序列的前n项和,结果保留两位小数。(注意,不用通分,单项相加即可)【输入描述】一个数字,N【输出描述】前N项的和【样例输入】10【样例输出】16.48【题目分析】(1...

【题解】真分数(2019青岛市程序设计竞赛)

【描述】真分数,指的是分子比分母小的分数,真分数的分数值小于1。给出n个正整数,任取两个数分别作为分子和分母组成真分数。求能组成多少不同值的真分数。【输入】第一行是一个正整数n。第二行是n个不同的正整...

【题解】区间数位个数

区间数位个数(digit.cpp)【描述】给定整数n和整数k,求出1~n中所有数的每一位数字中,出现数字k的次数。【输入】第一行是两个个整数n和k【输出】一个整数表示答案。【样例输入输出】light....

2021年青岛市程序设计竞赛试题(初中组)决赛

2021年青岛市程序设计竞赛试题(初中组)决赛

A.趣味三角(triangle.cpp) 【题目描述】 今天,新高一的OIer们第一次进入了机房。z老师想让他们喜欢上OI,于是给了他们每个人一个三角形。 这时候,小q秃发奇想,...