随笔分类 -  动态规划

vijos 1282&1283&1284&1285 佳佳的魔法照片/魔法药水/魔杖/魔法阵
摘要:题目链接: https://vijos.org/p/1282 https://vijos.org/p/1283 https://vijos.org/p/1284 https://vijos.org/p/1285 T1:佳佳的魔法照片 纯模拟,我用了两次快排,但是有个数据中k为0也就是无输出,需要注意 阅读全文
posted @ 2017-04-07 10:57 nhc2014 阅读(483) 评论(0) 推荐(0)
BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1642 解:用f[i]来表示我们第i段时间挤奶的情况下,在此之前(包括自身),最多能产多少奶。 最后找到最大的f[i]. 程序: 阅读全文
posted @ 2017-04-03 01:13 nhc2014 阅读(178) 评论(0) 推荐(0)
BZOJ 1618: [Usaco2008 Nov]Buying Hay
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1618 解:我看了半天觉得很像完全背包,可是又没法按套路来,于是翻了别人的题解,发现真是啊!!(一道神奇的背包) 我们发现也许最终的重量会超过H,但超过的部分绝对会小于maximum(p[i] 阅读全文
posted @ 2017-04-03 00:32 nhc2014 阅读(177) 评论(0) 推荐(0)
BZOJ 1613: [Usaco2007 Jan]Running
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1613 解:设f[i][j]表示第i分钟当前疲劳度为j时的最大距离, 首先,我们上一轮休息,现在当然也可以休息,所以f[i][0]=f[i-1][0]; 如果我们现在选择休息,f[i][j]= 阅读全文
posted @ 2017-04-03 00:17 nhc2014 阅读(200) 评论(0) 推荐(0)
BZOJ 1609: [Usaco2008 Feb]Eating Together
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1609 解:题目很明显,我们只要找到最长不下降子序列,然后总长度减去它的长度就可以了,用o(nlogn)的方法。 但是,用O(9n)的动归,显然更优(吧。。。) 我学习了一下他人的动归。 用f 阅读全文
posted @ 2017-04-02 23:58 nhc2014 阅读(226) 评论(0) 推荐(0)
树形dp TELE (POJ1155)
摘要:题目链接:http://poj.org/problem?id=1155 题解: 懵。。。。 这题好像就是01背包吧 我们用f[x][j+k]来表示以x为根的子树,转播j+k个用户时,能获得的利润 f[x][j+k]=max(f[x][j+k],f[x][j]+f[son][k]-w);(w表示转播需 阅读全文
posted @ 2017-03-27 10:53 nhc2014 阅读(133) 评论(0) 推荐(0)
树形dp聪聪和可可(vijos1675)
摘要:题目链接:https://vijos.org/p/1675 题解:完全不会写有关期望的问题,怎么办嘞。。。。 首先因为每次聪聪都会往离可可最短的路走,我们先用求出p[i][j](其实就是拓扑。。。)来表示从i节点到j节点走最短路到达的第一个节点。 然后每次都dfs聪聪下一步可能会走的节点,只要有哪一 阅读全文
posted @ 2017-03-27 10:35 nhc2014 阅读(147) 评论(0) 推荐(0)
树形dp小胖守皇宫(vijosP1144)
摘要:题目链接:https://vijos.org/p/1144 题解:这道题的动归稍稍有一点的复杂,因为一个节点有可能被它的子节点观察,也有可能被父节点观察; 所以我们这样表示: f[i][0](表示当前i节点放了一个看守,即他自己和所有子节点已经被控制好) f[i][1](表示当前i节点不放看守,但是 阅读全文
posted @ 2017-03-27 10:14 nhc2014 阅读(296) 评论(0) 推荐(0)
树形dp贪吃的九头龙(vijos1523)
摘要:题目链接:https://vijos.org/p/1523 我们用dp(i,j,k)来表示此状态下最小难受值,i为当前访问到的节点,j为大头还要吃几个,k为当前节点的父节点的颜色。 我们会发现只要小头的数目大于1,我们一定保证当树枝的两端被小头吃时,不会增加难受值,那么难受值就由大头增加。 用1表示 阅读全文
posted @ 2017-03-27 09:36 nhc2014 阅读(212) 评论(0) 推荐(0)
洛谷P3354河流(树形dp)
摘要:题目链接:https://www.luogu.org/problem/show?pid=3354#sub 题解:还是深搜,因为能运输到的伐木场一定在村庄的下游(或本身),即伐木场一定是村庄的父节点(或本身),当我们访问到村庄时,下游的最近伐木场一定被决定出来了。 我们用dp(i,j,k)表示当前访问 阅读全文
posted @ 2017-03-27 09:00 nhc2014 阅读(377) 评论(0) 推荐(0)
树形dp偷天换日题解(洛谷P3360)
摘要:题目链接:https://www.luogu.org/problem/show?pid=3360 题解:我们用f[i][j]来表示以i为根的子树上给定j的时间能获得的价值,需要记忆化搜索。 (如果是走廊)f[i][j]=max(f[i][j],f[lson][k]+f[rson][j-k-2*tim 阅读全文
posted @ 2017-03-27 08:29 nhc2014 阅读(290) 评论(0) 推荐(0)
技能树(树形dp)
摘要:题目: 玩过Diablo的人对技能树一定是很熟悉的。一颗技能树的每个结点都是一项技能,要学会这项技能则需要耗费一定的技能点数。 只有学会了某一项技能以后,才能继续学习它的后继技能。每项技能又有着不同的级别,级别越高效果越好,而技能的升级也是需要耗费技能点数的。 有个玩家积攒了一定的技能点数,他想尽可 阅读全文
posted @ 2017-03-16 13:07 nhc2014 阅读(655) 评论(0) 推荐(0)
BZOJ 2423: [HAOI2010]最长公共子序列
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2423 题解:唔,我其实也不会,然后去看了题解。。。 大概意思是我们不仅仅用f[i][j]来表示最长公共子序列的长度,还要用一个g[i][j]来表示方案数,具体的话程序里写吧。。 阅读全文
posted @ 2017-03-07 11:02 nhc2014 阅读(229) 评论(0) 推荐(0)
平常练习动归(3.矩形分割)————贪心
摘要:【问题描述】 出于某些方面的需求,我们要把一块N×M的木板切成一个个1×1的小方块。 对于一块木板,我们只能从某条横线或者某条竖线(要在方格线上),而且这木板是不均匀的,从不同的线切割下去要花不同的代价。而且,对于一块木板,切割一次以后就被分割成两块,而且不能把这两块木板拼在一起然后一刀切成四块,只 阅读全文
posted @ 2017-03-03 09:41 nhc2014 阅读(726) 评论(0) 推荐(0)
平常练习动归(2.步步为零)———bool型动归
摘要:【问题描述】 【输入格式】 【输出格式】 【输入样例1】 【输出样例1】 【时空限制】 【数据规模】 阅读全文
posted @ 2017-03-03 09:23 nhc2014 阅读(292) 评论(0) 推荐(0)
平常练习动归(1.胖男孩)———最长公共子序列
摘要:T1 【问题描述】 【输入格式】 【输出格式】 【输入样例1】 【输出样例1】 【时空限制】 阅读全文
posted @ 2017-03-03 09:11 nhc2014 阅读(419) 评论(0) 推荐(0)
2016 noip 复赛 day2
摘要:T1 组合数题目 解:这题好像如果知道一个公式,应该就可以做了吧。。。 重点在于不知道。。。。。 程序: T2 蚯蚓 这题第一个想法就是用堆来储存,每次都挑出最大的那只,然后切,再放回去。为了解决每只蚯蚓每秒都会增长,放入堆的时候需减去总共已增长的长度,拿出的时候再加上,就解决了这个问题。但是这样写 阅读全文
posted @ 2017-02-27 22:03 nhc2014 阅读(149) 评论(0) 推荐(0)
bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排(状态压缩DP)
摘要:本来就是一个写不大来动态规划的人,结果现在又了解到还有种东西叫状态压缩dp,唉。。。 找了一道例题来试试看:http://www.lydsy.com/JudgeOnline/problem.php?id=1725 解:我们用f[i][j]来表示当前第i行,状态为j的情况下,(且之前的1~i-1的方案 阅读全文
posted @ 2017-02-25 15:17 nhc2014 阅读(332) 评论(0) 推荐(0)
BZOJ4350: 括号序列再战猪猪侠
摘要:Description 括号序列与猪猪侠又大战了起来。 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个合法的括号序列。 2.若A是合法的括号序列,则(A)是合法的括号序列。 3.若A,B是合法的括号序列,则AB是合法的括号序列。 我们考虑mat 阅读全文
posted @ 2017-01-04 09:21 nhc2014 阅读(436) 评论(0) 推荐(0)
BZOJ 1564: [NOI2009]二叉查找树
摘要:链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1564 Description Input Output 只有一个数字,即你所能得到的整棵树的访问代价与额外修改代价之和的最小值。 Sample Input 4 10 1 2 3 4 1 2 3 阅读全文
posted @ 2017-01-04 00:36 nhc2014 阅读(308) 评论(0) 推荐(0)