http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1208
n天,每天可能考试,也可能不考试。如果连续考m天就会爆炸,
问你不爆炸的方案数是多少。
dp[i][j]表示前i天,已经有j天连续爆炸的情况。
1 第i天不爆炸,以前的天数影响自动取消。
2 第i天爆炸,但是要保证他的爆炸天数不超过i
include
include
include
include
using namespace std;
/*当时以为是背包计数,但是无法确定连续的情况。
但是没有想到另一个维度,一看就是做题不多的缘故。
*/
typedef long long ll;
ll dp[60][6];
int main()
{ ll n;int m;
while(~scanf(“%lld%d”,&n,&m)){
memset(dp,0,sizeof(dp));
//dp[1][0]=1;//计数dp的写法。dp表示,累积到位置i,有j个数连续爆炸的情况
//dp[1][1]=1;
dp[0][0]=1;
for(int i=1;i<=n;i++){
for(int j=0;j