动态规划
背着代码的蜗牛
这个作者很懒,什么都没留下…
展开
-
2k进制数
2k进制数设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数。 (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位。 (3)将r转换为2进制数q后,则q的总位数不超过w。 在这里,正整数k(1≤k≤9)和w(k< W< span>≤30000)是事先给定的。 问:满足上述条件的不同的r共有多少个? 我们再从另一角度作些解释:设S是长度为w 的01原创 2016-08-15 21:31:09 · 1465 阅读 · 0 评论 -
护卫队(动态规划+ST表)
护卫队题目描述: 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队达到了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。每辆车的重量是已知的。任何一组车队的重量之和不能超过原创 2016-11-16 08:55:53 · 1327 阅读 · 0 评论 -
选择数字(动态规划+单调队列)
选择数字题目描述: 给定一行n个非负整数a[1]..a[n]。现在你可以选择其中若干个数,但不能有超过k个连续的数字被选择。你的任务是使得选出的数字的和最大。 输入描述: 第一行两个整数n,k 以下n行,每行一个整数表示a[i]。 输出描述: 输出一个值表示答案。 样例输入: 5 2 1 2 3 4 5 样例输出: 12 数据范围及提示: 对于20%的数据,n <原创 2016-11-11 09:45:15 · 780 阅读 · 0 评论 -
琪露诺(单调队列)
琪露诺题目描述: 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只会移动到i+L到i+R中的一格。你问为什么她这么原创 2016-11-10 20:37:13 · 872 阅读 · 0 评论 -
线段覆盖(序列动态规划+离散化)
线段覆盖题目描述: 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~10^18,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。 输入描述: 第一行一个整数n,表示有多少条线段。 接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端点<右端点)和价值ci。 输出描述: 输出能够原创 2016-10-05 21:34:24 · 802 阅读 · 2 评论 -
配置魔药(双线程序列动态规划)
配置魔药问题描述: 在《Harry Potter and the Chamber of Secrets》中,Ron的魔杖因为坐他老爸的Flying Car撞到了打人柳,不幸被打断了,从此之后,他的魔杖的魔力就大大减少,甚至没办法执行他施的魔咒,这为Ron带来了不少的烦恼。这天上魔药课,Snape要他们每人配置一种魔药(不一定是一样的),Ron因为魔杖的问题,不能完成这个任务,他请Harry在魔药课原创 2016-10-05 19:34:26 · 1062 阅读 · 0 评论 -
逃亡的准备(多重背包+二进制优化)
逃亡的准备问题描述: 在《Harry Potter and the Deathly Hallows》中,Harry Potter他们一起逃亡,现在有许多的东西要放到赫敏的包里面,但是包的大小有限,所以我们只能够在里面放入非常重要的物品,现在给出该种物品的数量、体积、价值的数值,希望你能够算出怎样能使背包的价值最大的组合方式,并且输出这个数值,赫敏会非常地感谢你。 输入描述: (1)第一行有2个原创 2016-10-05 15:31:03 · 1671 阅读 · 0 评论 -
数字三角形升级版(棋盘型动态规划)
数字三角形升级版题目描述: 从数字三角形的顶部(如图,第一行的5表示行数)到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,且你有一次机会可以把任何一个数重复加一遍。 和最大的路径称为最佳路径。你的任务就是求出最佳路径上的数字之和。 输入描述: 第一行:一个数,表示行数。 接下来n行为数塔 输出描述: 一个数即最优结果 样例输入: 5 1 1 3 1原创 2016-11-09 08:13:08 · 436 阅读 · 0 评论 -
访问艺术馆(树型动态规划)
访问艺术馆题目描述: 皮尔是一个出了名的盗画者,他经过数月的精心准备,打算到艺术馆盗画。艺术馆的结构,每条走廊要么分叉为二条走廊,要么通向一个展览室。皮尔知道每个展室里藏画的数量,并且他精确地测量了通过每条走廊的时间,由于经验老道,他拿下一副画需要5秒的时间。你的任务是设计一个程序,计算在警察赶来之前(警察到达时皮尔回到了入口也算),他最多能偷到多少幅画。 输入描述: 第1行是警察赶到得时原创 2016-11-08 14:45:38 · 404 阅读 · 0 评论 -
核电站问题
核电站问题题目描述: 一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。 任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数。 输入描述: 输入文件只一行,两个正整数N,M(1< N<50,2≤M≤5) 输出描述: 输出文件只有一个正整数S,表示方案总数。 样例输入: 4 3 样例输出: 13 数原创 2016-10-03 15:55:26 · 1516 阅读 · 1 评论 -
炮
炮题目描述: 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技。炮吃子时必须 隔一个棋子跳吃,即俗称“炮打隔子”。 炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘上摆了起来……他想知道,在N×M的矩形方格中摆若干炮(可以不摆)使其互不吃到的情况下方案数有几种。 棋子都是相同的。 输入说明: 一行,两个正整数N和M。 输出说明: 一行,输出方案数mod 999983原创 2016-11-07 10:57:03 · 486 阅读 · 0 评论 -
实验室(搜索->记忆化搜索->动规优化)
实验室题目描述: LYK 在一幢大楼里,这幢大楼共有 n 层, LYK 初始时在第 a 层上。 这幢大楼有一个秘密实验室,在第 b 层,这个实验室非常特别,对 LYK 具有约束作用,即若 LYK 当前处于 x 层,当它下一步想到达 y 层时,必须满足|x-y|<|x-b|,而且由于实验室是不对外开放的,电梯无法停留在第 b 层。 LYK 想做一次旅行,即它想按 k 次电梯,它想知道不同的旅行方原创 2016-11-07 07:51:08 · 524 阅读 · 0 评论 -
逢低吸纳(最长下降子序列+方案数+高精度)
逢低吸纳题目描述: 逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀: “逢低吸纳,越低越买” 这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。 给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能买几次原创 2016-10-25 21:40:21 · 878 阅读 · 0 评论 -
等差数列(线性动归)
等差数列题目描述: 给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度. 输入描述: 第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000. 输出描述: 对于每个输入数据,输出你所找出的最长等差数列的长度 样例输入: 7 3 8 4 5 6 2 2 样例输出: 5 思路: 状态f[原创 2016-10-09 15:23:30 · 1365 阅读 · 0 评论 -
一起去打CS
一起去打CS题目描述: 早就和lyk约好了去打cs,一直没找着时间,终于今天我家没人,他家也没人,总算可以出去了。但是偏偏天公不作美,某某人非要留那么多题要做。没办法只能尽快做完然后抓紧时间吧…… 为了尽量节省时间,我俩决定分开做所有题吧(嘿嘿,稍微耍一下滑~~)。但是有的题我比较擅长,而有的题lyk要比我做的快。所以为了尽快做完所有的题,我们要好好的分配一下。现在给出你要做题原创 2016-08-11 20:06:52 · 1083 阅读 · 0 评论 -
最长上升子序列(nlogn算法)
#include<iostream> using namespace std;const int maxn=1000000;int n,j,a[maxn],c[maxn],len;int find(int l,int r,int x){ if(l==r) return l; int mid=(l+r)>>1; if(c[mid]<x) return find(mid原创 2016-08-16 20:04:31 · 273 阅读 · 0 评论