上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 33 下一页
摘要: 题目大意:给一棵树,求其中最大的“毛毛虫”,毛毛虫的定义是一条链上分出几条边 题解:把每个点的权值定义为它的度数减一,跑带权直径即可,最后答案加二 卡点:无 C++ Code: 阅读全文
posted @ 2018-11-23 21:47 Memory_of_winter 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵树。有三种操作: 题解:可以发现一条路径对所有不在这条路径上的点有贡献,所以可以把这些区间给排除(树链剖分中的每一条链存下来),把其他位置加上一个数,可以给每个点维护一个大根堆。 考虑删除一个数,可以再开一个大根堆,表示删除的数,若两个堆顶元素相同,就弹出。 卡点:无 C++ Co 阅读全文
posted @ 2018-11-23 20:23 Memory_of_winter 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一棵树,路径加,子树求和 题解:树剖 卡点:无 C++ Code: 阅读全文
posted @ 2018-11-22 11:29 Memory_of_winter 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一棵树,有$3$个操作: 题解:可以在割断时把这条边赋值上$1$,恢复时赋成$0$,只需要求$p->q$路径和是否为$0$即可,可以用$dfs$序+树状数组维护 卡点:$LCA$越界 C++ Code: 阅读全文
posted @ 2018-11-21 20:03 Memory_of_winter 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵以$1$为根的树,$m$次操作,第$i$次为对以$v_i$为根的深度小于等于$d_i$的子树的所有节点权值加$x_i$。最后输出每个节点的值 题解:可以把操作离线,每次开始遍历到一个节点,把以它为根的操作加上,结束时把这个点的操作删去。 因为是$dfs$,所以一个点对同一深度的贡献 阅读全文
posted @ 2018-11-21 15:31 Memory_of_winter 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一个序列是好的当且仅当有一个数是其它所有数的和,问一个序列可以删掉哪个数变成好的序列。输出所有方案。 题解:发现等于其他数的和的那个数一定是其中最大的,只要排序一下(其实只要找到最大的两个数),就可以$O(1)$判断是否合法 卡点:无 C++ Code: 阅读全文
posted @ 2018-11-19 19:27 Memory_of_winter 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一个长度为$n(1\leqslant n\leqslant24)$的序列$S$和$k(0\leqslant k\leqslant2)$个数。 求有多少种$S$的排列方式使得其任何一个前缀和都不是$k$个数里的任意一个。 题解:状压$DP$,枚举当前选的数的状态和下一个数,卡常,枚举下一个 阅读全文
posted @ 2018-11-18 19:56 Memory_of_winter 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有$n$个数,$q$次询问,每次询问$[l,r]$中最多可以选多少个数使得相同的数最多有$k$个。($k$在同个测试点中相同) 题解:$k$不变,可以预处理出每个数前面的第$k$个相同的数在哪,对于询问区间$[l,r]$,若前面的第$k$个数的位置小于$l$,则可以选择这个数。于是用主席树 阅读全文
posted @ 2018-11-18 18:35 Memory_of_winter 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一个全排列,两种操作: 1. $0\;l\;r:$把$[l,r]$升序排序2. $1\;l\;r:$把$[l,r]$降序排序 最后询问第$k$位是什么 题解:二分答案,把比这个数大的赋成$1$,否则为$0$,线段树区间和和区间赋$01$,最后判断第$k$位是$0$是$1$,若为$1$则还可 阅读全文
posted @ 2018-11-18 15:13 Memory_of_winter 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目大意:$NOIP2018\;TG\;D2T2$ 题解:在skip2004的博客基础上修改的,也是暴搜。 说明一下把vector改成数组并不可以通过此题,记录。 结论:在$m>n+1$时答案为$3(n,m)$($(n,m)$表示长$m$高$n$的矩形的答案) 发现其中判断右下角矩阵斜线全相等的部分 阅读全文
posted @ 2018-11-18 13:20 Memory_of_winter 阅读(426) 评论(1) 推荐(1) 编辑
摘要: 题目大意:$NOIP\;TG\;D2T1$ 题解:一棵树的很简单,第一个点一定是$1$,只需要对每个节点,找最小的没有访问过的节点访问即可,我写的是$O(n\log_2n)$。 考虑基环树的部分,一个显然的想法是枚举一条环上的边,然后删掉,跑树的部分,复杂度为$O(mn\log_2n)$,明显过不了 阅读全文
posted @ 2018-11-17 16:09 Memory_of_winter 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题目大意:$NOIP2018\;TG\;D1T3$ 题解:题目要求最短的赛道的长度最大,可以想达到二分答案,接着就是一个显然的树形$DP$。 发现对于一个点,它子树中若有两条链接起来比要求的答案大,一定接起来成为一条路径,因为接起来答案一定加一,而传递上去的话不一定。然后对于一条链,一定是找可行的最 阅读全文
posted @ 2018-11-17 15:30 Memory_of_winter 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目大意:最短路,可以有$k$条边无费用 题解:分层图最短路,建成$k$层,层与层之间的边费用为$0$ 卡点:空间计算出错,建边写错 C++ Code: 阅读全文
posted @ 2018-11-08 20:21 Memory_of_winter 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一棵树,从中选取$2$条链,其中任何一条链的端点不能被另一条链包含,求这两条链,使这两条链的公共的点的部分最长,若相同,使得总长度最长。 题解:树形$DP$,因为端点互不包含,所以公共的部分的端点一定有两个及以上的儿子,然后可以把这样的点先全部求出来。求新树的直径就可以满足第一个要求(洛 阅读全文
posted @ 2018-11-08 16:19 Memory_of_winter 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给一张$n(n\leqslant2000)$个点的无向图,给所有边定向,使定向之后存在最多的有序点对$(a,b)$满足从$a$能到$b$ 题解:先把边双缩点,因为这里面的点一定两两可达。 根据网上题解得知,最优解一定长这样:存在一个点$s$,使得对于任意其他点$t$,要么$s$可以到$t$ 阅读全文
posted @ 2018-11-08 14:00 Memory_of_winter 阅读(325) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 33 下一页