题解
文章平均质量分 73
IImmkk
这个作者很懒,什么都没留下…
展开
-
P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈
链接: P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈 前言: 第一眼大水题,第二眼努力思考,第 N 眼我是大水逼。 题意: 不看题目标题都应该能看出来是取石子类的博弈论。 有两堆石子,可以在任意一堆取走任意正整数的石子,也可以同时在两堆中取走相同任意正整数的石子。判断当前状态。 分析: 这就是大名鼎鼎的威佐夫博弈了。 本着不会正解就暴力打表的思想,我们可以打出暴力,这其实是解决本题的关键所在。在暴力中我们可以发现只有以下状态先手必败: (0,0),(1,2),(3,5),(4,7),原创 2021-06-16 19:13:47 · 132 阅读 · 0 评论 -
P6075 [JSOI2015]子集选取
链接:P6075 前言: 虽然其他大佬们的走分界线的方法比我巧妙多了,但还是提供一种思路。 题意: %&¥……@#直接看题面理解罢。 分析过程: 看到这样的题面我脑里第一反应就是DP,但是看到n和k的范围只能作罢。想到各种柿子又根本推不出来,于是颓废地打了个复杂度算不来的貌似是 2n32^{n^3}2n3 的深搜。于是有以下测试: input output 1 2原创 2021-06-03 15:37:10 · 110 阅读 · 0 评论 -
P4774 [NOI2018] 屠龙勇士
链接:P4774 前言: 交了18遍最后发现是多组数据没清空/ll 题意: 其实就是个扩中。 分析过程: 首先发现根据题目描述的选择剑的方式,每条龙对应的剑都是固定的,有查询前驱,后继(在该数不存在前驱时,最小值即为后继),和插入,删除操作,所以想到平衡树维护每条龙的剑的攻击力,记为b[i]。建议使用非旋treap,非常之好写。 根据题目描述,a[i]为每条龙生命值,p[i]为每条龙回复量。发现能够击杀这条龙的条件可以列成一个方程: xb[i]−yp[i]=a[i]xb[i]-yp[i]=a[i]x原创 2021-06-03 15:36:44 · 86 阅读 · 0 评论 -
P3147 [USACO16OPEN]262144 P
链接: P3147 P3146双倍经验 前言: 今天发现的一道很有意思的DP题 分析: 第一眼以为是区间DP,于是设f[i][j]为从第i个数到第j个数可以合出的最大值,但思考后发现并不能简单合并,并且n的范围也不支持。 于是想贪心,但是贪着贪着发现自己想不出,于是看题解,发现唯一的贪心也被hack了,果然正解不是贪心。 决定放弃。 于是回头重新看题分析,首先根据n的范围分析后可以发现答案范围很小,最大为58,又回到刚开始的区间DP,我们发现其中有三个关键值,左端点,右端点和答案,那么我们可以尝试改变思原创 2021-06-03 15:36:04 · 118 阅读 · 2 评论 -
P2680 [NOIP2015 提高组] 运输计划
链接:P2680 题意: 在树上把一条边边权变为0使得最长给定路径最短。 分析: 最大值最小可以想到二分答案,对于每一个mid,寻找所有大于mid的路径,再寻找是否存在一条边使得删去它后大于mid的路径都小于等于mid,可以将这个条件分成两部分。 所有大于mid的路径都经过该边。可以想到统计路径数和每条边被经过的次数,前者可以在添加大于mid的路径时统计,后者则可以用树上边的差分搞定。 每条大于mid的路径删去这条边后都小于等于mid。我们发现在添加路径时如果大于mid的路径数为零则任何一条边原创 2021-06-03 15:35:41 · 84 阅读 · 0 评论 -
P1505 [国家集训队]旅游
链接:P1505 题意: 给定一棵树,边带权值,五种操作: 修改一条边的权值 将两节点之间的所有边权值变为相反数 询问两节点间边权和 询问两点间最大权值 询问两点间最小权值 分析: 所有操作都是对树上路径的询问和修改,说明这是道树链剖分模板题,思想简单,码量较大,也有一些踩坑的地方,适合初学树剖的来练手。 算法: 先解释下这几个: ttol[N],ltot[N],wtop[N]; 意思分别是treetoline,linetotree,weighttopoint前两个即树剖中树与线段树的对应关系,后原创 2021-06-03 15:34:36 · 65 阅读 · 0 评论