【CODEVS】2618 核电站问题
2618 核电站问题
时间限制: 1 s
空间限制: 32000 KB
题目等级 : 黄金 Gold
题解
查看运行结果
题目描述 Description
一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。
任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数。
输入描述 Input Description
输入文件只有一行,两个正整数M,N(1 < N<50,2≤M≤5)
输出描述 Output Description
输出文件只有一个正整数S,表示方案总数。
样例输入 Sample Input
4 3
样例输出 Sample Output
13
数据范围及提示 Data Size & Hint
( 1< N<50,2≤M≤5)
本题网络上流行四种解法。其中一种三维dp有些啰嗦就不在此赘述。
首先强调:
1、使用long long
2、连续M个核燃料爆炸,所以合法的连续数至多为M-1
约定:0.M表示从0到M-1,0..M表示从0到M(学过Ruby等语言的童鞋应该知道)
解法一:dp
设f[i][j]表示第i个坑连续放了j个(i>=j),则f[i][0.M]的累加和即为第i个坑放放(m-1)个核燃料的方案总数。
可得状态转移方程:
f[i][0]=f[i-1]0.M
f[i][j]=f[i-1][j-1](第i个坑连续放了j个,相当于第i-1个坑连续放了j-1个的方案数,因为第i个坑连续放了j个相当于第i-1个坑连续放了j-1个的每个方案,在第i个坑又放了一个)
程序如下:
#include<cstdio>
using namespace std;
long long f[60][10],ans;
int N,M;
int main()
{
scanf("%ld%ld",&N,&M);
//初始化
f[1][0]=1;
f[1][1]=1;
for(int i=2;i<=N;i++)
{
for(int j=0;j<M;j++)
{
f[i][0]+=f[i-1][j];
}
for(int j=1;j<M;j++)
{
f[i][j]=f[i-1][j-1];
}
}
//累加和
for(int i=0;i<M;i++)
{
ans+=f[N][i];
}
printf("%ld",ans);
return 0;
}
每个大括号都尽量写上,以后改代码很好改——取经自BKdalao。
解法二、三均为递推,二者大同小异。时间关系以后补上~
【CODEVS】2618 核电站问题的更多相关文章
- codevs 2618 核电站问题
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会 ...
- CODEVS——T 2618 核电站问题
http://codevs.cn/problem/2618/ 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description ...
- 核电站问题(codevs 2618)
题目描述 Description 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定的N和M,求不发生爆炸的放 ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
随机推荐
- android Serializable 和 Parcelable 区别
android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable. 一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中:2.通过 ...
- ansible 安装 使用 命令 笔记 生成密钥 管控机 被管控机 wget epel源
ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装.ansible不需要) 配置(salt配置麻烦,a ...
- 用JS把数组内的日期转换为星期
核心代码 给定日期是星期几,应把字符串转为Date: new.Date('2017-12-30').getDay(); // 返回0,表示星期天,1:星期一…… 案例: 需求: 调用此方法 funct ...
- eclipse memory analyzer对系统内存溢出堆文件解析(转)
本文转之:https://blog.csdn.net/rachel_luo/article/details/8992461 前言 性能分析工具之-- Eclipse Memory Analyzer t ...
- WPF MVVM模式不用Prism
上一个例子使用了Prism.这个例子不用Prism.用自己封装的库LiuxhCSDLL,其实也差不多. 一.程序结构 二.界面代码以及界面效果 <Window x:Class="WPF ...
- jsp 页面跳转后修改数据,返回时不更新
项目jsp页面上用隐藏input框接收获取数据,在跳转入另一页面前,js操作修改数据,但返回时发现无效. 需求是点击抽奖后机会减少一次,但是当做跳转操作后返回时,次数有缓存问题 jsp: <in ...
- python随机生成图片
#-*-coding:utf-8-*- import tensorflow as tf import numpy as np import cv2 image = tf.random_uniform( ...
- Django项目:CRM(客户关系管理系统)--80--70PerfectCRM实现CRM业务流程(bpm)课程排行分页
# coursetop_views.py # ————————64PerfectCRM实现CRM课程排名详情———————— #————班级学生详情——#计算#{学员ID:分数}——#计算 #{学员I ...
- k8s 内部各个部件运转
Master节点部署的都是kubernetes的核心模块APIServer提供资源操作的唯一入口,并且提供认证/授权/kubernets的访问控制可以通过kubectl和自己开发的客户端,通过http ...
- 60行JavaScript代码俄罗斯方块
教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏 早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下( ...