摘要: Loj#10159.旅游规划 题目说的很明确了,问点是否在最长路径上,记录最长次长以及最长转移的位置。 怎么判断点在最长路径上,只要最长次长和向上走三者中较大的两个的和为最长路就能说明在最长路径上。 代码显然好写。 /* Knowledge : Rubbish Algorithm Work by : 阅读全文
posted @ 2022-03-26 19:54 Gym_nastics 阅读(23) 评论(0) 推荐(0) 编辑
摘要: P2458 [SDOI2006]保安站岗&& #10157. 「一本通 5.2 例 5」皇宫看守 眼熟吗?UVA1292 Strategic game,#10156. 「一本通 5.2 例 4」战略游戏,最大独立集问题,感觉是不是一模一样?只不过是把边权转到点上了,做法一样,你设 \(f[u][0] 阅读全文
posted @ 2022-03-23 21:58 Gym_nastics 阅读(20) 评论(0) 推荐(0) 编辑
摘要: P2014 [CTSC1997] 选课 树形DP,题目说了每门课有一门或没有直接先修课,所以不存在环,也就是个森林,我们可以利用题目的性质,用 \(0\) 号节点把森林连起来,选择数 \(m\) 自加即可。 DP式是很普通的树形背包,设 \(f[i][j]\) 表示到 \(i\) 节点选择 \(j\ 阅读全文
posted @ 2022-03-20 16:23 Gym_nastics 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 树形DP经典问题 树的重心 树的重心:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> 阅读全文
posted @ 2022-03-19 21:13 Gym_nastics 阅读(71) 评论(0) 推荐(0) 编辑
摘要: P1005 [NOIP2007 提高组] 矩阵取数游戏 贪心?假了。 1 4 4 5 0 5 这组样例应该是 \(5 \times 2 + 0\times 4+ 4 \times 8 + 5 \times 16 = 122\) 你的贪心呢?\(4 \times 2 + 5 \times 4 + 0 阅读全文
posted @ 2022-03-19 19:18 Gym_nastics 阅读(117) 评论(0) 推荐(0) 编辑
摘要: P1063 [NOIP2006 提高组] 能量项链 区间DP,和环形石子合并差不多,就是把加改成乘,枚举区间范围不同罢了。 先复制一遍数组,破环为链。 想想哪里不同?我们不要按题意模拟,看样例,无非就是三个数合并,一直合并到一个。但是我们还要考虑到环形的影响,区间长度最长不能到 \(n\) 就停, 阅读全文
posted @ 2022-03-19 09:00 Gym_nastics 阅读(55) 评论(0) 推荐(0) 编辑
摘要: P3121 [USACO15FEB]Censoring G 怎么说?这题还算是比较妙的。 注意到题目中 FJ 每次在 s中找到最早出现的列表中的单词(最早出现指该单词的开始位置最小),然后从s中删除这个单词 这句话,所以我们对文本串跑自动机的时候,记录一下删掉串的长度和删了这个串顶上的那个点的编号, 阅读全文
posted @ 2022-03-16 22:24 Gym_nastics 阅读(32) 评论(0) 推荐(0) 编辑
摘要: P5231 [JSOI2012]玄武密码 \(AC\) 自动机裸题。 Sol: 1.建一颗 \(Trie\) 树。 2.处理 \(fail\) 指针。 3.文本串跑一遍自动机,把子串都打上标记。 4.每个模式串跑一遍 \(Trie\) 树,找到最深标记节点。 Code: /* Knowledge : 阅读全文
posted @ 2022-03-16 21:31 Gym_nastics 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 数论笔记Ⅱ 前言 数论Day2,全程划水 此处数论1 隔了俩月了快,转眼年也过了一个半月了。 发现U盘之前还没写完的 Day3,一直咕着也没把不会的写了,想了想还是发出来吧,毕竟还有些写了的。 01分数规划 基本01分数规划问题:给定一个二元组 \((value_i,cost_i)\),\(valu 阅读全文
posted @ 2022-03-13 21:26 Gym_nastics 阅读(82) 评论(0) 推荐(0) 编辑
摘要: #10051. 「一本通 2.3 例 3」Nikitosh 和异或 题意就是让着选两个区间,区间不能交叉,令他们的区间异或的和最大,怎么做? 这篇题解(Link)里有区间两个数异或最大值,想办法让这个区间异或值成两个点的区间异或,很显然,前缀异或。 异或也有前缀性。比如$a \oplus b = c 阅读全文
posted @ 2022-03-13 21:16 Gym_nastics 阅读(44) 评论(0) 推荐(0) 编辑