题目名称 473. 核电站问题
输入输出 nucle.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarmouse 于2010-09-28加入
开放分组 全部用户
提交状态
分类标签
动态规划 递推
分享题解
通过:112, 提交:241, 通过率:46.47%
GravatarSky_miner 100 0.000 s 0.00 MiB C++
Gravatar风吹我已散 100 0.000 s 0.00 MiB C++
Gravatardateri 100 0.000 s 0.00 MiB C++
Gravatar521 100 0.000 s 0.00 MiB C++
GravatarRiolu 100 0.000 s 0.00 MiB C++
GravatarAntiLeaf 100 0.000 s 0.00 MiB C++
GravatarHzoi_ 100 0.000 s 0.00 MiB C++
Gravatar皮波Forever 100 0.000 s 0.00 MiB C++
GravatarHakurou! 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
本题关联比赛
模拟测试2
20160329
哈哈哈
关于 核电站问题 的近10条评论(全部评论)
long long = =
GravatarRiolu
2016-05-28 19:45 4楼
在i < M 时 f[i]显然
在i = M 时 应去除选中连续M(也就是全部选中)的一种方案
当i > M 时 方案数应该是可以选择的方案减去不合理的方案,不合理的方案,实际上就是选中连续M的方案;
所以

for(int i=1;i<=N;i++){
if(i<M) f[i]=f[i-1]<<1 ;
else if(i==M) f[i]=(f[i-1]<<1)-1;
else f[i]=(f[i-1]<<1)-f[i-M-1];
}
GravatarSky_miner
2016-03-19 08:41 3楼
这应该算递推吧= =。。
注意理解i>M时
F[i]=2*F[i-1]-F[i-M-1];
还有long long
Gravatarraywzy
2014-07-24 12:32 2楼
分情况讨论一下吧!DP
GravatarOIdiot
2014-03-03 17:25 1楼

473. 核电站问题

★★☆   输入文件:nucle.in   输出文件:nucle.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

    一个核电站有 N 个放核物质的坑,坑排列在一条直线上。如果连续 M 个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。

任务:对于给定的 N 和 M ,求不发生爆炸的放置核物质的方案总数。

【输入格式】
     输入文件(nucle.in)只一行,两个正整数 N , M( 1<N<50 , 2 ≤ M ≤ 5)

【输出格式】
     输出文件 (nucle.out) 只有一个正整数 S ,表示方案总数。

【输入输出样例】
 
输入:

nucle.in

4 3

输出:

nucle.out

13