10 2017 档案
摘要:逃离迷宫(状压dp) ryz 被困在了一个 $n m$ 四连通网格图的迷宫中,每走一步需要消耗一定的体力,消耗的体力等于格子的高度差的平方。在迷宫的某一些格子上有体力药水,可以恢复 ryz 一定的体力。现在 ryz 希望消耗最少的体力值到达迷宫出口,请你计算出这个最小的体力值。你可以认为 ryz 一
阅读全文
摘要:小R的棋子(dp) 数轴上有 n 个位置可以摆放棋子,标号为1,2,3...n。小 R 现在要在一些位置摆放棋子,每个位置最多摆放一个棋子,摆放棋子的总数没有限制。小 R 不希望他摆放的棋子过于拥挤,因此他给出了个限制条件,第个限制条件要求在li和ri之间不能摆放 3 个或 3 个以上的棋子。现在小
阅读全文
摘要:愤怒的小鸟(状压dp) 弹弓在(0, 0)处,有一堆猪在第一象限,问你用鸟打几次能把猪全部打掉。鸟的飞行路线是处在第一象限的抛物线。猪的个数n include include const int maxn=18, INF=1e9; const double eps=1e 8; int n, m, t
阅读全文
摘要:蚯蚓(玄学单调队列) 给你n个蚯蚓,在m秒内,每秒找到最长的,将其咔擦,咔擦后变成两段蚯蚓,长度比例为p。所有蚯蚓,每秒会变♂长q个单位。求你每个被切断前的蚯蚓长度,和m秒后所有蚯蚓的长度。nb。那么在t+1秒的开始,$a p$变成了$ap+qt$,而$b p$就是$bp+qtp$,显然前一个依然比
阅读全文
摘要:换教室(期望dp) 有一个人要上n节课,每节课可以申请换到另一个教室上课,更换成功的概率是$k_i$。最多可以申请m节课。教室可以看成为一个图,结点数为v,边数为e。从一个教室移动到另一个教室需要一定体力值。求期望最小体力值。 woc,这是个期望dp啊。$f[i][j][0/1]$表示上到第i次课,
阅读全文
摘要:Computer (树形dp) 给你一棵树,问你每个点能到达的最远距离。N include include using namespace std; const int maxn=10005; class Graph{ public: struct Edge{ int to, next, v; Gr
阅读全文
摘要:没有上司的舞会 (题目已略) 表示这种题目唯一的坑点就是输入。。居然是多组数据! c++ include include include using namespace std; const int maxn=6005; class Graph{ public: struct Edge{ int t
阅读全文
摘要:水库 (树形dp) R国有n座城市和n 1条长度为1的双向道路,每条双向道路连接两座城市,城市之间均相互连通。现在你需要维护R国的供水系统。你可以在一些城市修建水库,在第i个城市修建水库需要每年c_i的维护费用。对于没有修建水库的城市,如果离它最近的水库的距离为d,那么需要每年t_i的运输费用来保证
阅读全文
摘要:奖励关(期望dp) 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立。也就是说,即使前k 1
阅读全文
摘要:数字计数 (奇特的数位dp) 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 这道题就是枚举第i个数位是什么数字,然后乘法原理搞一搞。小心当前枚举的数位是0的情况,需要特判前导零。 c++ include using namespace std; type
阅读全文
摘要:篝火晚会 (并没有算法) 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”。在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会。一共有n个同学,编号从1到n。一开始,同学们按照1,2,……,n的顺序坐成一圈,而实际上每个人都有两个最希望相邻的同学。如何下命令调
阅读全文
摘要:过河 (优化dp) 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,……,L(其中L是桥的长度)。坐标为0的点表示桥的起点,坐标为L的
阅读全文
摘要:宝藏探寻 树上倍增 小μ发现了一个矿洞,里面出产珍贵的紫萤石。紫萤石的价值与它的质量成正比。可以认为,一个质量为x的紫萤石的价值为x^2。经过探查,发现这个矿洞里面有一块巨大的紫萤石,它的结构是一个N个点,N 1条边的无向无环联通图。其中每一个节点i可以看成是一个质量为a[i]的紫萤石。有N 1条紫
阅读全文
摘要:传染病防治(爆搜+剪枝) 研究表明,这种传染病的传播具有两种很特殊的性质;第一是它的传播途径是树型的,一个人X只可能被某个特定的人Y感染,只要Y不得病,或者是XY之间的传播途径被切断,则X就不会得病。第二是,这种疾病的传播有周期性,在一个疾病传播周期之内,传染病将只会感染一代患者,而不会再传播给下一
阅读全文
摘要:加分二叉树 ~~树型~~区间dp 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下
阅读全文
摘要:没有找零 状压dp 约翰到商场购物,他的钱包里有K(1 include using namespace std; const int maxn=1e5+5, maxk=20; int k, n, coins[maxn], things[maxn], pre[maxn]; // pre:物品的前缀和
阅读全文
摘要:互不侵犯king (状压dp) 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。$1\le n\le 9,0\le k\le n n$。 这道题如果普通dfs肯定会超时。为什么呢?我们发现一行中的状
阅读全文
摘要:Mice and Holes 单调队列优化dp n个老鼠,m个洞,告诉你他们的一维坐标和m个洞的容量限制,问最小总距离。1 ≤ n, m ≤ 5000。 首先列出朴素的dp方程:$f[i][j]=min(f[i 1][k]+s[j] s[k])$,其中$f[i][j]$表示前i个洞,有j个老鼠进
阅读全文
摘要:tree(二维偏序) 最近接触到一些偏序的东西。 传统线段树非叶子节点的划分点mid=(l+r)/2,但小R线段树mid是自己定的。但满足l=r2,那么l,r小于l2,r2。具体做法就是一维排序,然后i从大到小(从小到大也可以,只不过这里dfs出来顺序是从小到大的,那么就从大到小扫一遍),对于左端点
阅读全文
摘要:老司机 Lucas Skipper 喜欢飙车。最近,Lucas 参加了一个飙车比赛。比赛在环型赛道上进行,全程共 K 圈。在比赛中,选手需要用主办方提供的赛车,而这种老爷车给 Lucas 带来了巨大的麻烦。这种赛车的油箱可以装 n个单位的油。每个单位的油可以支持赛车跑恰好 1 圈。每圈开始前,你需要
阅读全文
摘要:三分法求函数极值 这个比较简单,就不说了。其实可以用近似二分的方法来做,只不过要小心精度问题,导致mid超出l,r的范围。还有,用秦九韶算法可以优化求多项式的时间复杂度。 cpp include using namespace std; const int maxn=20; const double
阅读全文

浙公网安备 33010602011771号