
动态规划
心若为城
这个作者很懒,什么都没留下…
展开
-
测试:有关于memset重置和for循环重置的问题
memset和for哪个比较快呢? 打出代码如下:#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <cstdlib>#include <iomanip>#include <cmath>#include <ctime>#include <stack>#include原创 2015-11-04 09:39:05 · 578 阅读 · 1 评论 -
NOI2005 : 聪聪和可可
Dp原创 2016-04-11 14:05:02 · 355 阅读 · 0 评论 -
BZOJ 3036
首先声明这是道水题,但是我一开始写挂了。 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿。 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度。绿豆蛙从起点出发,走向终点。 到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。 现在绿豆蛙想知道,从起点走到终点的所经原创 2016-04-11 18:46:29 · 475 阅读 · 0 评论 -
bzoj 1419
Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。 Input 一行输入两个数R,B,其值在0到5000之间 Output 在最优策略下平均能得到多少钱。 题解:/* Prog:bzoj 1419 Solu: f[i][j原创 2016-04-11 19:56:58 · 468 阅读 · 0 评论 -
vijos 1243 ——DP
首先这是一个DP,并且是一个数据加强版的DP。 题意: 在经过一段时间的经营后,dd_engi的OI商店不满足于从别的供货商那里购买产品放上货架,而要开始自己生产产品了!产品的生产需要M个步骤,每一个步骤都可以在N台机器中的任何一台完成,但生产的步骤必须严格按顺序执行。由于这N台机器的性能不同,它们完成每一个步骤的所需时间也不同。机器i完成第j个步骤的时间为T[i,j]。把半成品从一台机器上搬到原创 2016-05-05 19:42:26 · 635 阅读 · 0 评论 -
01背包第k大
嗯……这道题其实还是挺简单的…… 然后我就不会做了QAQ 实际上就是设 f[i][j][k]为第i个物品,容量为j,第k个背包的价值。 那么则有f[i][j][p] = f[i - 1][j - w[i]][1…K] + val[i]与f[i - 1][j][1…K]的第p个 然后因为我懒了一下…… 我想: 诶?询问最大值? 前k大? 然后搞了个堆下来…… 然后就TLE了TAT原创 2016-05-06 12:09:45 · 342 阅读 · 0 评论 -
oj上已读的题目/好题
没错,下面就是读了但是还没写的题目 1293: [SCOI2009]生日礼物 显然的一个三进制状态,单调队列+前缀和维护一下就行? 当然要是存60个last我也不想说什么…… 1217: [HNOI2003]消防局的设立 初看起来好像是树DP。但是可以贪心,肯定是中间有4个点的时候是最好的。然后对根进行一下特判。以下是比较好(容易写挂)的题目 vijos P1376魔法卷轴 好像思路很原创 2016-11-04 08:27:11 · 328 阅读 · 0 评论 -
dp练习orz
1.51nod1296 对于一段,限制只有前一个和它本身。 定义f[i][j]f[i][j]表示前ii个数结尾是第jj名的方案数。 转移也很显然。#include #define Rep(i,n) for(int i = 1;i using namespace std;const int Mod = 1e9 + 7;int n,K,L,sum[5002],f[2][5002]原创 2016-10-24 18:57:58 · 269 阅读 · 0 评论 -
题目<2016/11/30>
1.HDU5731 轮廓线状压DP+裸的容斥原理。 首先考虑没有任何限制的多米诺骨牌的问题。 那么我们暴力DP的话就是让不放的为0,放了的为1. 但是太暴力了,我们可以这样想。 对于第i个位置,我们实际上只关心第i个位置的: 如果我们知道这个轮廓线的所有状态,我们通过枚举这个格子怎么放也可以达到效果。 步骤如下: 1.枚举轮廓线状态以及在轮廓线的最后一个格子的状态。 2.更新下原创 2016-11-30 21:17:23 · 351 阅读 · 0 评论 -
bzoj 1426
期望QAQ原创 2016-04-12 08:55:03 · 383 阅读 · 0 评论 -
DP之收了前几天的flag系列【树状数组优化
确切地说…… 并不算是收了自己的flag吧…… 因为我前两天都在打模拟赛…… 所以可以叫做“没有收flag”(强行不收flag) 好的这次来扯一道题叫做: 不是那么显然的数据结构优化dp系列之树状数组。 先来看一道题: 题意:求最长不上升子序列。 f[i] = max{j < i && seq[j] >= seq[i]|f[j]} + 1; 于是,原创 2016-02-29 20:29:54 · 510 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
动态规划原创 2015-10-23 15:19:29 · 172 阅读 · 0 评论 -
树形DP的一些理解(一)
关于苹果树樱桃树山楂树的DP问题原创 2015-11-06 11:11:21 · 858 阅读 · 0 评论 -
关于位运算——状态压缩DP预备知识
一些位运算知识原创 2015-11-18 18:06:10 · 491 阅读 · 1 评论 -
一早起来发现自己没有写昨天的三道DP(Flag被收系列)
水题1: 最大子矩阵和: 给出一个矩阵,求一个子矩阵使得其和最大。 我们先来想一维的: 给出一个序列,求一个连续子序列使得和最大。 f[i] = max(f[i - 1] + seq[i],seq[i]); 考虑子矩阵的话,那么我们可以这样考虑: 我们考虑: 以(i,j)为左上角,(p,q)为右下角的矩阵,我们发现它的矩阵和是:pre_sum[p][j~q] - pre_su原创 2016-03-03 11:31:10 · 353 阅读 · 0 评论 -
3只DP
马上要省选了呢、、、 应该快速突破一下、、、 今天的dp还是很水的题…… 1.Noip:金明的预算方案。 大概就是有依赖的背包,考虑这个背包整体选不选,部分选不选即可。#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#define Rep(i,n) for(int i = 1; i <= n ; i原创 2016-03-03 16:28:37 · 360 阅读 · 0 评论 -
HNOI2004:打鼹鼠
DP的水题…… 这是道大水题啊…… 我居然不会做…… 设f[i]表示强制打死第i只鼹鼠之前最多能打死几只。 于是我们有转移方程: f[i] = max{j < i && abs(x[i] - x[j]) +abs(y[i] - y[j]) <= tim[i] - tim[j] |f[j]} + 1; 然后由于……这就是一个m^2的DP,实际上是可以过的,因为常数首先是0.5,可能再加几个原创 2016-04-01 08:12:31 · 465 阅读 · 0 评论 -
每日三只DP
DP系列原创 2016-02-29 21:29:45 · 332 阅读 · 0 评论 -
斜率优化
1.北京冬令营的一个无聊题目 题意不说了,简略概括其实就是: 给你个数组a,求个前缀和数组之后,有个dp转移,叫做: f[i] = min\{f[j]+(sum_i - sum_j)^2\} \ f[i]=min{f[j]+(sumi−sumj)2} f[i] = min\{f[j]+(sum_i - sum_j)^2\} \ 让你在O(nlogn)O(nlogn)O(nlogn)的时间之原创 2017-01-20 14:48:10 · 472 阅读 · 0 评论