上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
摘要: P3690 【模板】Link Cut Tree (动态树) 思路 "candy" 不是太掌握 也落落不太清楚 自己学习吧 ~~lmc讲的时候睡着了~~ cpp include define ls c[x][0] define rs c[x][1] const int N=300009; using 阅读全文
posted @ 2018-12-26 20:28 ComplexPug 阅读(192) 评论(0) 推荐(0) 编辑
摘要: P2147 [SDOI2008]洞穴勘测 思路 没办法,我就是喜欢板子都想发的人 都是基础操作,不多说了 代码 cpp include define ls ch[x][0] define rs ch[x][1] define FOR(i,a,b) for(int i=a;i'9'||s='0'&&s 阅读全文
posted @ 2018-12-26 20:18 ComplexPug 阅读(115) 评论(0) 推荐(0) 编辑
摘要: P3203 [HNOI2010]弹飞绵羊 思路 每个点都往后面连边 所以肯定没有环 超过n的算连向n+1 n+1个点,n条边,没有环,一定联通 那就差不多是个树了 然后就LCT模拟他的操作就行 有比较简单的LCT做法,不过我还是喜欢无脑一点的 错误 cut操作x写错i 代码 阅读全文
posted @ 2018-12-26 20:15 ComplexPug 阅读(112) 评论(0) 推荐(0) 编辑
摘要: P4172 [WC2006]水管局长 前言 luogu数据太小 去bzoj,他的数据大一些 思路 正着删不好维护 那就倒着加,没了 LCT维护他的最小生成树MST 树上加一条边肯定会有一个环 看看环上最大值和加边的大小 然后选择加不加,改不改 错误 哇,恶心撒 怼着题解都写不出来 最后乱改了一下就A 阅读全文
posted @ 2018-12-26 20:09 ComplexPug 阅读(205) 评论(0) 推荐(0) 编辑
摘要: P3979 遥远的国度 思路 一开始我用这个函数得到左端点 发现是错误的 无奈数据太水,还90,bzoj也错了一个点 debug了一上午 到现在我也不知道哪里错了,各路好汉看看吧 也许是我没用dfs序的性质吧 x的儿子点一定在x的子树范围内child[x] child[x]+siz[child[x] 阅读全文
posted @ 2018-12-26 20:05 ComplexPug 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 思路 这个题哪里有那么费脑筋 我们可以树链剖分嘛~~LCT昨天学的时候睡着了,不是太会~~ 两遍dfs+一个5行的BIT 其实树链剖分学好了对倍增和LCT理解上都有好处 一条路径上的修改 由于一条剖出来的链是连续的,我们要选择数据结构维护 不过这里不用维护太多东西,只是区间+1 我们可以选择常数小, 阅读全文
posted @ 2018-12-26 19:59 ComplexPug 阅读(201) 评论(0) 推荐(0) 编辑
摘要: P3178 [HAOI2015]树上操作 思路 板子嘛,其实我感觉树剖没啥脑子 就是debug 代码 cpp include define int long long define ll long long define ls rt'9'||s='0'&&s 1; build(l,mid,ls); 阅读全文
posted @ 2018-12-26 19:56 ComplexPug 阅读(131) 评论(0) 推荐(0) 编辑
摘要: P3313 [SDOI2014]旅行 思路 有点恶心咯 每个信仰开一颗线段树记录 修改或者查询的时候去那一颗信仰线段树中查询就好 必须动态开点线段树 没有区间修改还算好写 错误 查询跳链写错了 阅读全文
posted @ 2018-12-26 19:52 ComplexPug 阅读(148) 评论(0) 推荐(1) 编辑
摘要: [HEOI2016/TJOI2016]树 思路 做的时候也是糊里糊涂的 就是求最大值的线段树 错误 线段树写错了 阅读全文
posted @ 2018-12-26 19:48 ComplexPug 阅读(174) 评论(0) 推荐(0) 编辑
摘要: GSS7解题报告 前言 唔,有点恶心哪,废了两个多小时debug 思路 很容易看出~~傻子都知道~~,这个是树链剖分+线段树的裸题,只不过是恶心了点,这里重点讲一下细节问题 线段树 做过GSS系列的都应该很熟悉了 线段树维护的前缀最大子段和,后缀最大子段和,和区间最大子段和 那么我们就可以很容易的写 阅读全文
posted @ 2018-12-26 17:35 ComplexPug 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 树剖做法: 就是两个dfs+一个线段树 难度的取决基本==线段树的维护难度 所以对有点线段树基础的,树剖也不难做吧 这里操作有二 一:两点间路径染色 线段树的区间赋值操作 二:查询路径段的个数 考虑线段树如何做 我们发现两端区间的合并取决于他们相连接的那两个颜色 比如这张图 他两边区间合并的时候,完 阅读全文
posted @ 2018-12-25 21:49 ComplexPug 阅读(159) 评论(0) 推荐(0) 编辑
摘要: cf解题报告 记录一下吧 做出:T1 rating : 97 想起几个月前做不出T1还是有点小搞笑呀2333 T1 双指针+特判 T2 发现k特别小,枚举剩余系 还要判断是否是能被n整除 移项发现可以算出整除是多少 然后$整除 k+剩余数=n$算出答案,复杂度$O(k)$ T3 大力贪心 先算出A、 阅读全文
posted @ 2018-12-24 09:51 ComplexPug 阅读(157) 评论(0) 推荐(0) 编辑
摘要: "https://oj.zrt.io/problem/44" 比较容易懂得 "文档" "新浪" 阅读全文
posted @ 2018-12-21 11:12 ComplexPug 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 思路 求出height之后 只要相邻两个子串是本串不同的来更新就好 因为这样一定是最优啊、、取min显然越长越不好 代码 cpp include include include define FOR(i,a,b) for(int i=a;i=b; i) using namespace std; co 阅读全文
posted @ 2018-12-21 08:17 ComplexPug 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 前言 总之这个东西说起来很麻烦就是了, 思路 差分合并+后缀数组+二分(dddl) 类似于那个 "bzoj1031" 的复制子串和那个 "poj1743" 的差分 来看个例子 变成了这个(最后一个INF最好删掉吧,应该不影响的吧) 很明显,答案是min[5,10]+1=1+1=2 belong是后缀 阅读全文
posted @ 2018-12-20 21:24 ComplexPug 阅读(120) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页