====动态规划====
LOI_pingxing
这个作者很懒,什么都没留下…
展开
-
[codevs1048]石子归并
区间型经典例题原创 2017-04-08 09:58:56 · 457 阅读 · 0 评论 -
[洛谷P1658]购物
题目←因为看方法大概跟题解里的不太一样,就另写了个题解丢上去了 这里就不再写了……#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int x,n,v[10010],cnt;int dp[10010],ans = 10010;bool exist[1001原创 2017-10-31 11:02:16 · 589 阅读 · 0 评论 -
[错题记录][vijos1280]The Moment-遇见
链接←70分,改天再调 因为是给pascal的题目,在c++这里负数的数组下标就很难处理#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;const int MAXN = 3000 + 5;int map[MAXN][MAXN];int n,p = 10611原创 2017-10-23 15:59:28 · 368 阅读 · 0 评论 -
[vijos1292]火车票
为什么我能做的DP好像只有序列型QAQ原创 2017-10-23 17:20:01 · 402 阅读 · 0 评论 -
[vijos1037]搭建双塔
有人说这是多重背包可行性问题?日本白里还有讲?原创 2017-10-23 21:21:05 · 377 阅读 · 0 评论 -
[vijos1235]天堂的馈赠
题目←状态定义很显然的DP题 设dp[i][j]为第i秒位于位置j所能获得的最大礼物价值 这样dp[i][j]可以由dp[i - 1][j - 1],dp[i - 1][j],dp[i - 1][j + 1]推来一开始怎么交怎么wa,郁闷不已 然后发现是这句话:当礼物在某一秒末恰好到达小杉所在的格子中,小杉就接到了这个礼物所以。。所有到达时间是浮点数(速度不被H整除)的礼物都是接不到的……原创 2017-10-25 10:45:50 · 435 阅读 · 0 评论 -
[vijos1232]核电站问题
题目←大概需要更多方案数这方面DP的练习……题意:在n个位置放 <= m个核电站,有多少种放法使最长连续核电站数 <= m dp[i][j]定义:以第i个核电站为终点,最放连续j个核电站的方案数 这样若j位置连续大于等于1个,则方案数为dp[i][j] = dp[i - 1][j - 1], 若位置j连续为0,则为dp[i - 1]这一层所有状态方案数的总和 注意枚举时j始终 < m,#in原创 2017-10-25 16:56:42 · 446 阅读 · 0 评论 -
[codevs4888零件分组][codevs1044拦截导弹]
codevs4888零件分组两道题目都牵扯到了一个问题,一个区间中存在的单调序列的个数 若要求序列单调不增,则序列个数为最长单调递增序列;(导弹拦截) 若要求序列单调不减,则个数为最长单调递减序列;(零件分组)证明摘自某不知名blog: 对于某序列有增有减,则该序列所形成的严格单调递增序列必然为其每个互相完全不相同单调递减序列的某一个元素共同构成,即对于序列100 68 66 56 78 8原创 2017-10-17 13:18:47 · 581 阅读 · 0 评论 -
[vijos1907][codevs3729]飞扬的小鸟
题目←n <= 10000,m <= 1000,凑成10^7刚好 所以设dp[i][j]为到位置i高度j的最小步数 一个显然的转移是dp[i][j] = min(dp[i - 1][j - h[i][0]],dp[i - 1][j +h[i][1]) 然而我们注意到,在一个地方只是可以多次点击的 也就是说,h[i][0]可以累加多次 枚举h[i][0]累加次数会T两个点 但我们注意到,一原创 2017-10-26 16:37:20 · 522 阅读 · 0 评论 -
[题目总结][动态规划] 更新ing
待更新…… 动态规划是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。以上摘自知乎。 就停课以来做的题来看,除了那些根本不会的,要注意的大概有 1、明确状态定义 2、考虑初始状况 3、注意端点状况 4、时间复杂度,时间复杂度,时间复杂度vijos1232核电站问题 也是洛谷的双塔问题 orz O(n^3)A掉此题的Frankcodevs原创 2017-11-04 18:38:10 · 332 阅读 · 0 评论 -
[队内测试Day10.22T3][codevs1684]垃圾陷阱
还是要想明白状态的定义,保证在转移时符合实际原创 2017-10-22 17:19:56 · 390 阅读 · 0 评论 -
[洛谷P1850]换教室 概率与期望
要分清哪些状态是独立的,哪些状态对期望有影响 一开始傻傻的在通过和没通过之间取min…… 事实上,在求期望的前提下,真正影响的决策是是否申请 以及万万没想到Floyd打次了 map[i][i] = 0才对发现当前时间段的状态仅仅与上一时间段的状态有关 然后上一时间段的情况(未完,放学了)#include<iostream>#include<cstdio>#include<cstring原创 2017-11-04 21:58:49 · 382 阅读 · 0 评论 -
[codevs1154]能量项链
题目描述 Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标原创 2017-09-28 10:56:16 · 325 阅读 · 0 评论 -
[codevs1159]最大全零子矩阵
传送门←这里用二维单调栈 其实就是对每一行跑一遍单调栈……#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<stack>using namespace std;const int MAXN = 2000 + 50;int map[MAXN][MAXN],f[MAXN][MAXN原创 2017-09-28 17:45:33 · 718 阅读 · 2 评论 -
[codevs1256]打鼹鼠
题目←大意: 一块n*n的网格,m只仓鼠,每只仓鼠会在某一时刻t出现在坐标x,y,求问在最大的t内最多打多少只仓鼠 tips:同一时刻同一地点只可能出现一只仓鼠。给出的是网格大小n,以及m只仓鼠的出现时刻和坐标。思路: 一看题:枚举t,dp数组存点的坐标,状态定义成时刻t在x,y最多打多少只仓鼠,t这一维滚动 于是for(int t = s[1].t;t <= T;t ++)原创 2017-09-29 10:43:48 · 408 阅读 · 0 评论 -
[codevs1315]摆花
题目←大意: m种花,每种花有a[i]盆,共摆m盆,有多少种摆法 注:第i + 1种花只能摆在第i种花后面思路: 像是递推一样…… dp[i][j]表示第i种花摆到第j盆有多少方法 因为只能摆在第i-1种后面(不严格,第i - 1种可能没有摆,但没摆的可能性也算在第i - 1种之内),所以i这一维可以由i-1这一维推来#include<iostream>#include<cstd原创 2017-09-29 15:16:49 · 434 阅读 · 0 评论 -
[队内测试Day10.18]递推+tarjan+最小表示法+脑洞
T1来自dfkd的半原创题 T2tarjanT3双指针T4公式+脑洞原创 2017-10-18 09:22:09 · 275 阅读 · 0 评论 -
[codevs4748]低价购买
最长不上升子序列及方案数原创 2017-10-09 11:32:51 · 400 阅读 · 0 评论 -
[codevs3289]花匠 线段树优化dp
线段树真是个好东西原创 2017-10-09 14:32:16 · 389 阅读 · 0 评论 -
[codevs1418]愚蠢的矿工
题目←之前听过思路,胡搞了一下…… 左儿子右兄弟写起来简单些(枚举次数并不少)转移: dp[i][j]为到第i个点剩j人的最大可获价值 节点上留人则可由左儿子和右兄弟的和+自己转来; 节点上不留人只能由右兄弟转来#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace s原创 2017-10-10 21:50:28 · 636 阅读 · 0 评论 -
[codevs1647]炮兵阵地
为什么不打poj1185?因为代码太弱过不了……原创 2017-10-11 21:45:03 · 410 阅读 · 0 评论 -
[洛谷P2246] Hello World
明确各个数组的含义,保证在转移的时候符合实际原创 2017-10-18 16:17:39 · 397 阅读 · 0 评论