摘要:
link 其实一眼看到就能想到区间$dp$吧 设$dp(i,j)$表示从$i$到$j$的折叠次数最小,我们每次确定一个数$k$,若$i$~$k$能匹配$k+1$~$j$那么$dp(i,j)=dp(i,k)+2+s$,$s$为括号左面的数字的位数,$+2$是因为要算上括号,若不能则$dp(i,j)=d 阅读全文
摘要:
pdf $MST$: T1: 给定一个$n$个点,$m$个边的图,问强制有该边的最小生成树权值($n\leq 10^6,m\leq 10^6$) 建MST,然后若为树枝边则不管,否则就求一下加入后为环的最大值删除即可(求个$lca$就行) 简称:树上路径最大值 T2: 给定$m$个集合连边,图中共有 阅读全文
摘要:
题目pdf W神爷的题解 T1:简单$dfs$ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; inline int read() { int f=1,ans 阅读全文
摘要:
题目pdf 代码因为码量太长就不上传了 T1:送分 T2:从圆心往外dfs,然后瞎搞,时间复杂度$O(m*(M+n)\log n)$ $(我会markdown 了)$ T3:建堆维护规约规则与贪心,一颗维护度数,一颗维护编号,删除的时候直接打上标记,到堆订的时候看一看是否要被删除,多关键字排序(度数 阅读全文
摘要:
link 建一棵线段树,一个节点维护$4$个东西,最大前缀和,最大后缀和,最大连续和,总的权值和,先说最大前缀和怎么进行维护,我们只需看一看左儿子的最大前缀和,但是有可能终点不止包含左节点的所有,还有可能有右节点的最长前缀和,所以就将左儿子的所有权值加上右儿子的最长前缀和,然后其他都是这样处理。在查 阅读全文
摘要:
link 考虑暴力,每个狗直接向他能到达的点连一条以到达时间为边权的边,然后跑$spfa$即可,建变数量$N\times M$ 但是$N \leq 30000,M \leq 30000$,所以优化建图,怎么搞呢,分块大法。我们设定$i\times n+j$想做在第$j$个大楼上有第$i$个窗户,能直 阅读全文
摘要:
link 若$k=0$时,则没有走过任何一个新建道路,所以答案为$2\times (n-1)$,因为用$dfs$可以发现每条边经过一次,回溯一次 设树的直径为$L1$ 若$k=1$时,则我们发现若连接$(u,v)$,则会产生一个环,环中每条边只经过一次,其余都经过两次,则答案是$2\times{(n 阅读全文
摘要:
link 线段树优化建图,再跑$tarjan$已成$DAG$,然后反跑拓扑排序即可,因为最小的反倒是连边连的最多的地方,即使方向两边入读为$0$的点,然后在随便跑个计数$dp$即可 #include<iostream> #include<cstdio> #include<cstring> #incl 阅读全文
摘要:
无题目描述 T1: 线段二分判交,二分判一判即可,用斜率求一下,可以将除法改成乘法,分子与分母,几何题从来没对过 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std 阅读全文
摘要:
题目 W神爷的题解 高级数据结构 T1: 其实是一道easy题,$O(n^3log n)$ 也是能卡过去的,本着要的70分的心态,最后尽然A了。 如果是正解则是$O(n^3)$,当确定你要选择的列时,不断往下扩展,因为此刻是单调函数,所以可以用单调队列优化。 #include<iostream> # 阅读全文
摘要:
题目pdf T1: 考场上被读题搞蒙,最后才写,但是尽然AC了(只有一个任务点) 最后发现就是将去时的秒数加上回来的秒数除以二即可 易证 主要考的是读入优化 怎么处理掉每行后面的(+1 +2) read瞎搞搞即可 T2: 考场上脑袋抽筋想着用后缀和维护 但是并没有打完 最后弃疗 发现自己想少了 不仅 阅读全文
摘要:
this is not a 正经的note you may not understand Problem 1:二叉树,有权,要选它父亲才能选它,$n\leq200,m\leq500$ I: $dp_{i,j}$表示现在到达第i号节点,用掉j个容量,瞎搞 $dp[r][i]$表示以r为根的子树,总重量 阅读全文
摘要:
括号( brackets ) 【问题描述】 牛牛有一个字符串,这个字符串是由左括号 ( 和右括号 ) 组成的。这样的字符串 又叫做括号序列。 牛牛想知道,他的括号序列是不是一个回文括号序列。与一般的回文串不同,牛牛 的回文括号序列定义为“看上去”是回文的括号序列。例如牛牛认为,)()(是回文括号序列 阅读全文
摘要:
题目传送门 W神爷的题解 数论 小 M 的算式 【问题描述】 小 M 在做数学作业的时候遇到了一个有趣的问题:有一个长度为 n 的数字 串 S,小 M 需要在数字之间填入若干个“+”和恰好一个“=”,使其成为一个 合法的等式。如对于 S=“2349”,可以通过添加 2个“+”和 1 个“=”成为 “ 阅读全文
摘要:
This is a 玄学 exam A.年轮蛋糕 最小的最大,二分首选 断环为链,check(x),x为答案,然后将每个大于x的子区间记录下来 如果有大于3个的话,那么x就可以是答案 那么·,在优化下来,二分里套个下二分,查长度右端点 时间复杂度:O(log(10^13)^3*n) 但是AC了 #i 阅读全文
摘要:
link 这是一道假的图论 思维难度很低,代码量偏高 就是一道板子+二分 树上差分就AC了 注意卡常即可 二分枚举答案x,为时间长度 将每一个长度大于x的计划链长记录下来(有几个,总需要减少多少长度) 在树上跑一跑即可 树上差分就将u,vv权值+1,lca(u,v)-2即可 dp[i]:为子树权值和 阅读全文
摘要:
这是一篇很水的blog 扫雷 link 一道很水的dp,考虑上一上,这一行,与下一行是否有雷即可 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; inline 阅读全文
摘要:
其实这个专题NOIP几乎不考 AC自动机,就是能让题自动AC的东西,是不是十分神奇 对的,就是这么神奇 AC自动机是解决多模式串与文本串匹配的问题 是KMP+Trie树的结合,也是一个毒瘤算法 Keywords Search link 此题是AC自动机的板子,刚才说过AC自动机是解决匹配问题的,这道 阅读全文
摘要:
link 树链剖分,感觉是一个很神奇的东西,但是其实并不是那样的 树链剖分其实就是一个线段树 线段树处理的是连续区间,所以当你要加的时候都是连续区间修改 所以可以用轻重链的方式将树分解成为链条,然后用线段树处理 可以很容易看到,为什么用的是dfs但不是用的是bfs呢 因为dfs保持了重链是连续的,所 阅读全文
摘要:
看到要求gcd不为1所以肯定在这条答案链上都是一个质数的倍数,所以就会产生一个很暴力的想法 没错,正解就是这样的暴力 只让走是i(素数)倍数的点,作最长链 最长链可以树形dp或两遍bfs,一遍找端点,一遍过长度即可 复杂度:未证 #include<iostream> #include<cstdio> 阅读全文