上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 57 下一页
摘要: P2495 [SDOI2011]消耗战 "题目链接" 题解: 虚树$dp$入门题吧。虚树的核心思想其实就是每次只保留关键点,因为关键点的dfs序的相对大小顺序和原来的树中结点dfs序的相对大小顺序都是一样的,所以可以就求出dfs序并且利用它来构造。最后的图中只有关键点以及某些关键点对的lca。 具体 阅读全文
posted @ 2019-05-21 22:34 heyuhhh 阅读(141) 评论(0) 推荐(0) 编辑
摘要: P3071 [USACO13JAN]座位Seating "题目链接" 思路: 一开始把题给读错了浪费了好多时间呜呜呜。 因为第二个撤离操作是区间修改,所以我们可以想到用线段树来做。对于第一个操作,我们只需要维护suml,sumr,sum分别表示当前结点左端连续有多少个空位、右端连续有多少个空位、以及 阅读全文
posted @ 2019-05-19 22:43 heyuhhh 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 洛谷P2216 理想的正方形 "题目链接" 思路: 直接暴力显然不可行,可以发现每一个矩形向右边扩展时是一列一列增加,于是可以想到单调队列,用数组来维护当前每列的最大值。因为行也有限制,所以还要用一个单调队列来维护行的信息。 做法大概就是每次扩展一行,然后求出每一列当前的最大值,之后再一列一列来搞。 阅读全文
posted @ 2019-05-19 22:38 heyuhhh 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 洛谷P4556 雨天的尾巴 "题目链接" 题解: 因为一个点可能存放多种物品,直接开二维数组进行统计时间、空间复杂度都不能承受。因为每一个点所拥有的物品只与其子树中的点有关,所以可以考虑对每一个点来建立一颗权值线段树来维护多种物品以及其数量,然后最后在回溯时合并,这样就可以得到我们所需要的信息了。 阅读全文
posted @ 2019-05-19 22:33 heyuhhh 阅读(276) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round 561 (Div. 2) 题解 "题目链接" A. Silent Classroom 水题。 Code cpp include using namespace std; typedef long long ll; const int N = 105; int n; 阅读全文
posted @ 2019-05-18 20:03 heyuhhh 阅读(807) 评论(2) 推荐(0) 编辑
摘要: Codeforces Round 142 (Div. 1) C. Triangles "题目链接" 今天校内选拔赛出了这个题,没做出来....自己思维能力还不够强吧。~~我题也给读错了。。~~ 每次拆掉一条边,可以考虑在原图中会破坏多少三角形,但这也不好统计;所以可以转化一下,在新图中是什么样子的。 阅读全文
posted @ 2019-05-17 22:13 heyuhhh 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Educational Codeforces Round 65 (Rated for Div. 2)题解 "题目链接" A. Telephone Number 水题,代码如下: Code cpp include using namespace std; typedef long long ll; c 阅读全文
posted @ 2019-05-16 21:50 heyuhhh 阅读(339) 评论(0) 推荐(1) 编辑
摘要: P3311 [SDOI2014]数数 思路: 因为这个题有多个串,所以我们可以考虑构建一个AC自动机,然后在AC自动机上面跑数位dp。 设$dp(i,j)$表示当前是第$i$位(从高到低),在AC自动机上面的第$j$个结点的合法情况总数。 同数位dp一样,看看当前这一位目前是否有限制,如果没限制,就 阅读全文
posted @ 2019-05-16 20:26 heyuhhh 阅读(194) 评论(0) 推荐(0) 编辑
摘要: P3121 [USACO15FEB]审查(黄金)Censoring (Gold) 思路: 首先构造AC自动机,然后那串去匹配,并且记录一下每一个字符匹配时在AC自动机上的位置。 如果成功匹配一个单词,那么就需要从串中删除这个单词,并且从之前标记的位置开始匹配。 因为单词的长度我们知道,所以直接利用一 阅读全文
posted @ 2019-05-16 20:15 heyuhhh 阅读(224) 评论(0) 推荐(0) 编辑
摘要: P3375 【模板】KMP字符串匹配 来一道模板题,直接上代码。 cpp include using namespace std; typedef long long ll; const int N = 1e6 + 5; int n, m; char s1[N], s2[N]; int nxt[N] 阅读全文
posted @ 2019-05-16 20:07 heyuhhh 阅读(167) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 57 下一页