随笔分类 - 数据结构--线段树
摘要:https://www.luogu.org/problemnew/show/P5280 省选的时候后一半时间开这题,想了接近两个小时的各种假做法,之后想的做法已经接近正解了,但是有一些细节问题理不清楚(事实证明出来后再给我2个小时也还是没理清楚,只能说自己naive),而且也码不完,打了个20分暴力
阅读全文
摘要:https://www.luogu.org/problemnew/show/P4891 一道几乎一样的题http://210.33.19.103/contest/1130/problem/3 题面https://files.cnblogs.com/files/hehe54321/2019%E7%9C
阅读全文
摘要:https://www.luogu.org/problemnew/show/P3676 这题被我当成动态dp去做了,码了4k,搞了一个换根的动态dp 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 using namesp
阅读全文
摘要:https://www.luogu.org/problemnew/show/P2505 https://www.lydsy.com/JudgeOnline/problem.php?id=2750 神奇的题目... 题解 好像dijkstra序(dijkstra遍历点的顺序)就是“最短路dag”的一个
阅读全文
摘要:https://codeforces.com/contest/650/problem/D 原题? http://210.33.19.103/contest/1024/problem/2 4s 520M 题解很明白了: 当初想错了,想用stormwind的做法去做,发现要维护 给出数组a,f,gj<i
阅读全文
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=4597 https://www.luogu.org/problemnew/show/P4340 妄图直接暴力维护一堆东西,以直接维护题目要求的值(具体见代码...) 最后花了2个小时维护完了,A掉了,
阅读全文
摘要:https://www.luogu.org/problemnew/show/P4137 只会log^2的带修主席树。。 看了题解,发现有高妙的一个log做法:权值线段树上,设数i对应的值ma[i]为数i首次出现的位置(没有出现就是n+1) 如果把询问按左端点排序,这样就转化为:修改:...;询问:询
阅读全文
摘要:算导: 核算法 给每种操作一个摊还代价(是手工定义的),给数据结构中某些东西一个“信用”值(不是手动定义的,是被动产生的),摊还代价等于实际代价+信用变化量。 当实际代价小于摊还代价时,增加等于差额的信用; 当实际代价大于摊还代价时,减少等于差额的信用。 显然总摊还代价等于总实际代价+总信用变化量。
阅读全文
摘要:http://codeforces.com/contest/121/problem/E 话说这题貌似暴力可A啊。。。 正解是想出来了,结果重构代码,调了不知道多久才A 错误记录: 1.线段树搞混num(节点编号)和l(区间端点) 2.之前的dfs没有分离,写的非常混乱,迫不得已重构代码 话说这题貌似
阅读全文
摘要:http://www.codevs.cn/problem/1763/ https://www.lydsy.com/JudgeOnline/problem.php?id=2809 https://www.luogu.org/problemnew/show/P1552 http://210.33.19.
阅读全文
摘要:http://www.tsinsen.com/ViewGProblem.page?gpid=A1339 题解:https://blog.csdn.net/LOI_DQS/article/details/51251737 对着题解A掉了。。。然而并不知道为什么要这么转化问题。。。 复杂度nlog^2n
阅读全文
摘要:http://codeforces.com/problemset/problem/915/E 大概有几种思路: 1.动态开点线段树+标记下传 #1.1标记永久化:想了一会没想出来 1.2可以先扫一遍询问把所有需要的点建出来,然后pushdown就不管没建出来的点了,空间跟标记永久化一样 2.离散化+
阅读全文
摘要:(另外:题解中有一种思路很高妙而且看上去可以适用一些其他情况的离线方法) 线段树合并&复杂度的简单说明:https://blog.csdn.net/zawedx/article/details/51818475 调用一次合并函数的时间是常数,而合并函数每调用一次就会删掉一个点,所以合并的总代价为删掉
阅读全文
摘要:这个题有一个技巧:把颜色压到一个long long 上。
阅读全文
摘要:二维线段树区间更新啊 树套树的外层树,如果是线段树的话一般似乎不能打标记?(毕竟标记不好下传) 然而起码对于这题是可以的...对于外层线段树,每个节点放两个内层线段树dat和setv,分别是得到的值和修改操作留下的标记。 然后外层线段树要标记永久化...标记永久化之后,标记的定义不一样了。 这道题里
阅读全文
摘要:https://www.luogu.org/problemnew/show/P2048 http://www.lydsy.com/JudgeOnline/problem.php?id=2006 首先计算出数列的前缀和数组a[0]..a[n],那么问题转化为:从[0,n]中选取任意两个数(i,j)使得
阅读全文
摘要:记一下:线段树占空间是$2^{ceil(log2(n))+1}$ 这个就是一个线段树区间操作题,各种标记的设置、转移都很明确,只要熟悉这类题应该说是没有什么难度的。 由于对某区间set之后该区间原先待进行的取反操作失效(被覆盖),因此规定tag同时存在时set的标记先进行操作,这样对区间加上set标
阅读全文
摘要:Permutation UVA - 11525 看康托展开 题目给出的式子(n=s[1]*(k-1)!+s[2]*(k-2)!+...+s[k]*0!)非常像逆康托展开(将n个数的所有排列按字典序排序,并将所有排列编号(从0开始),给出排列的编号得到对应排列)用到的式子。可以想到用逆康托展开的方法。
阅读全文
摘要:树上最远点对(树的直径) 做法1:树形dp 最长路一定是经过树上的某一个节点的。 因此: an1[i],an2[i]分别表示一个点向下的最长链和次长链,次长链不存在就设为0;这两者很容易求 an3[i]表示i为根的子树中的答案;an3[u]=max(max{an3[v]}(v是u的子节点),an1[
阅读全文

浙公网安备 33010602011771号