摘要: 传送门 思路: 任意找一个点为树根。DFS 遍历树,如果子树和为负就直接跳过,不然就统计进答案。( 虽是任意取一点为根,但不一定从这个点出发能够取得最优解,要开一个 ans 记录一下最大值。) 标程: 阅读全文
posted @ 2018-10-23 20:52 落笔映惆怅丶 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 二分答案 ans ,将所有边都减去 ans ,判断负环。 Code: 阅读全文
posted @ 2018-10-23 16:51 落笔映惆怅丶 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 设 f [ i ][ j ] 表示,扔进去 i 个垃圾,垃圾高度为 j 时,奶牛的生命值。 初始化 f 数组为 -1,因为当奶牛生命值为 0 时,奶牛还是可以操纵垃圾。f [ 0 ][ 0 ] = 10 为奶牛的初始生命值。 转移如下: ① 当 f [ i ][ j ] < 0 时, 阅读全文
posted @ 2018-10-22 17:18 落笔映惆怅丶 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 采取贪心的思想。 把每个岛屿看作圆心,以雷达的范围 d 为半径,求出与 x 轴的左右两个交点,两交点所夹的区间就需要放置一个雷达,这样就把这道题转换为了区间取点问题。在枚举岛屿时,记录之前最后一个雷达安放的位置 las ,如果岛屿在这个雷达的范围内,就跳过,否则,在该岛屿所在的区间右 阅读全文
posted @ 2018-10-22 11:30 落笔映惆怅丶 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 直接用拓扑排序,套用题目给的公式就行了。。 标程: 阅读全文
posted @ 2018-10-19 22:19 落笔映惆怅丶 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 还是比较水的(不看题解不看书),用 vis 存字典树上的每个点是多少个单词的前缀,bo 来存每个点是多少个单词的结尾(坑点:会有很多相同的单词,不能只有 bool 来存)。统计时:① 如果匹配串的长度小于单词的长度,ans+= vis;② 如果匹配串的长度≥单词长度,ans+=bo; 阅读全文
posted @ 2018-10-19 11:22 落笔映惆怅丶 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 毒瘤的字典树! ▲主要分有两个步骤: ① 日常的建树。 ② 暴力地求解。 ▲日常建树:过于基础,跳过。 ▲重点在于如何暴力地求解而不被卡掉(DP?不存在的) 可以利用区间动规的思想,枚举文章的左右端点,判断中间区间的文章是否可以被理解。 文章的长度几乎为 INF ,直接 N2 枚举 阅读全文
posted @ 2018-10-18 22:02 落笔映惆怅丶 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 对于第一问很容易看出是求最长下降子序列,N2 的暴力就可解决。而第二问是求最优方案数(且不重复),需要判重。可以在求解最长下降子序列的基础上增开一个数组 g ,g[ i ] 表示以 i 结尾,不同的最优方案数。 标程: 阅读全文
posted @ 2018-10-17 21:47 落笔映惆怅丶 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 可以用 01 背包做,但是如果直接套用 01背包 模板就 GG 了。因为随着时间的推移,每个物品的价值在不断的发生改变。 现在考虑相邻的两个物品x,y。假设现在已经耗费 p 的时间,那么分别列出先做 x,y 的代价: ① a[ x ] - ( p + c[ x ] ) * b[ x 阅读全文
posted @ 2018-10-16 19:31 落笔映惆怅丶 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 动态规划:设 f [ i ] 表示第 i 个任务开始时,可获得的最大空闲时间。 转移方程: ① 若此时无任务:f [ i ] = max( f [ i ] , f [ i-1 ]+1 )。 ② 若此时有任务:f [ i+wj-1 ] = max( f [ i+wj-1 ] , f [ 阅读全文
posted @ 2018-10-15 12:04 落笔映惆怅丶 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 题目要求每次连边都要输出最小生成树的边权和。如果在线直接套用最小生成树模板肯定会超时,考虑离线处理。记录每一插入边的时间,在所有边都插入完成后排序一遍就可以求最小生成树(按照插入时间的前后对边进行取舍)。 标程: 阅读全文
posted @ 2018-10-12 11:48 落笔映惆怅丶 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 传送门 思路: 普通的树型动规,可参考 P2016 战略游戏 。 标程: 阅读全文
posted @ 2018-10-11 22:00 落笔映惆怅丶 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 关于LCA: LCA 指树上两点的公共祖先。 如何 “暴力” 找两点的 LCA : 可以先 DFS 一遍求出每个点的 dep (深度)。然后从深度大的点先往上跳,跳到与另一个点相同的深度,如果还没有到达相同的,就两个点一起往上跳,直到达到相同的点,那么,这个点就是两点的 LCA 。 关于倍增法求 L 阅读全文
posted @ 2018-10-05 22:55 落笔映惆怅丶 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 【题目描述】 给定正整数 n , p 和非负整数 a , b ,求 an+an-1b+an-2b2+…+a2bn-2+abn-1+bn,例如当n=1时,该结果等于 a+b 。由于答案可能很大,请对 p 取模。 【输入格式】 ▲多组数据 第一行,一个正整数T,表示数据组数。 接下来 T 行,每行四个整 阅读全文
posted @ 2018-10-03 12:55 落笔映惆怅丶 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目: 【题目描述】 跳跳虎在外面出去玩忘了时间,现在他需要在最短的时间内赶回家。 跳跳虎所在的世界可以抽象成一个含有 n 个点的图(点编号从 1 到 n ),跳跳虎现在在 1 号点,跳跳虎的家在 n 号点。 图上一共有 m 条单向边,通过每条边有固定的时间花费。 同时,还存在若干个单向传送通道,传 阅读全文
posted @ 2018-10-02 18:24 落笔映惆怅丶 阅读(227) 评论(0) 推荐(0) 编辑