【学术篇】SPOJ FTOUR2 点分治】的更多相关文章

淀粉质入门第一道 (现在个人认为spoj比bzoj要好_(:з」∠)_ 关于点分治的话推荐去看一看漆子超的论文>>>这里这里<<< 之前一直试图入点分治坑, 但是因为种(bu)种(duan)原(tui)因(fei)也没有入... 结果经常碰到点分治的题目... 然后就各种弃疗... 不少点分治的题目有非常明显的特征... 通常是给一棵树, 然后问你满足xx条件的路径有多少条/是否存在/最大(小)权值之类的... 然后点分治的做法也不尽相同 大致能写出如下的伪代码(好吧还…
题目の传送门~ 题目大意: 将\(n\)个蛋糕分成恰好\(k\)份, 求每份中包含的蛋糕的种类数之和的最大值. 这题有两种做法. 第一种是线段树优化dp, 我还没有考虑. 另一种就是分治+主席树. 然后如果看到分治+主席树的话 可以看成是两道题的二合一~ 不过ADAMOLD正解应该是有\(O(nk)\)做法的吧, 我的\(O(nklogn)\)分治好像被卡了一点常数QwQ 首先我们可以非常容易的看出这题要用dp和状要用到的状态转移方程 \[ f[i][j]=max{f[i-1][k]+d(k+1…
原题 给出一颗有n个点的树,其中有M个点是拥挤的,请选出一条最多包含k个拥挤的点的路径使得经过的权值和最大. 正常树分治,每次处理路径,更新答案. 计算每棵子树的deep(本题以经过拥挤节点个数作为deep),然后记录mx[i]为当前为止经过i个拥挤节点所达到的最大价值,tmp[i]为当前所在树中经过i个拥挤节点所达到的最大价值,用于更新答案即可. #include<cstdio> #include<algorithm> #include<cstring> #inclu…
题目:https://vjudge.net/contest/307753#problem/I 题意:有一颗树,上面有白色黑色点,每个点上有一个权值,权值可以为负,现在我要求一条路径,权值和最大,这条路径满足  白色可以随便经过多少个,黑色点的个数必须<=m 思路:首先又是树上路径题,必然点分治,其实这个题我们在考虑当前子树路径时,我们找前面子树出现过并且黑色出现数<=m-当前黑色节点数 里面出现的最大值这样的一条路径. 举个栗子:    限制路径黑色数:5 当前子树下的黑色数 :2  权值 …
还有5天省选才开始点字符串这棵技能树是不是太晚了点... ~题目の传送门~ AC自动机不想讲了QAQ.其实很久以前是学过然后打过板子的, 但也仅限于打过板子了~ 之前莫名其妙学了一个指针版的但是好像不能用循环遍历fail好像就啥也干不了于是改成了数组...) 其实就是Trie树上挂fail指针... 然后可以完成多串的kmp的样子... 直接看题吧. 题目大意: 求长度为\(L\)的,包含给定的\(n\)个短串中的至少一个的字符串的数量. 考虑补集转化, 考虑不含这些短串的字符串的数量. 然后用…
花儿们已经很累了-- 无论是花形.颜色.还是气味, 都不是为了给人们摆出来欣赏的, 更不是为了当做出题的素材的, 她们并不想自己这些属性被没有生命的数字量化, 并不想和其它的花攀比, 并无意分出个三六九等, 它们只想静静地开放, 完成自己这一生的使命, 而你(出题人)考虑过这些吗? 不,你只关心你自己! 题目的传送门会有的,先不要着急... 首先来看一道大水题. 给定\(n\)个元组\((x)\), 询问对于每个元组\(i\), 有多少个元组\(j\)满足\(x_i<x_j\). (一维偏序)…
发现链剖这东西好久不写想一遍写对是有难度的.. 果然是熟能生巧吧.. WC的dalao们都回来了 然后就用WC的毒瘤题荼毒了我们一波, 本来想打个T1 44分暴力 然后好像是特判写挂了还是怎么的就只能得28pts.. 重新见到这些失踪的dalao灰常开心, 于是想让自己心情稍微差一点, 就想着把自己昨天写WA的QTREE重构一遍吧.. 于是重构的sb链剖果然挂掉了... 出现了各种各样的漏洞... 忘记各种各样的句子, 然而退化成了暴力小数据也随便过看不出来啊~~~ 但是还是在1h之内调对了_(…
这是学完主席树去写的第二道题_(:з」∠)_ 之前用树上莫队水过了COT2... 其实COT也可以用树上莫队水过去不过好像复杂度要带个log还是怎么样可能会被卡常数.. 那就orz主席吧.... 写了一发然后非常快速的WA掉了... 然鹅bzoj(luogu)搞成了强制在线, 那就真的不能orz莫队智能orz主席了... 结果在luogu写了一发交上去全RE... 然后发现讨论区一帮子病友... 但是根据他们的心得改一波还是RE啊... 后来发现是自己脑抽参数传错了... 于是就WA呗, 那么一…
最近做了几道非常水非常水的dp...... 之后刷的一些水dp也会写在这里...... 此篇题目难度不递增!!! Emmmm....... 1.luogu1043数字游戏 以前看过这个题几遍,没做这个题(觉得太难了)...... 就是一道环形的区间dp......本来想按常规的思路拆成2n做,但是换算坐标好麻烦, 然后一看n,m好小于是就直接强行把数组错位做了...... 设\(f[i][j]\)为前i个点分j份能得到的最大值,\(g[i][j]\)为前i个分j份能得到的最小值, 用\(mod(…
Description 有些黑点,问你选择不超过 \(k\) 个黑点的路径,路径权值最大是多少. Sol 点分治. 这是qzc的论文题,不过我感觉他的翻译好强啊...我还是选择了自己去看题目... 点分治每次至少分一半,所以层数不超过过 \(logn\) 每次分治只考虑过根节点的情况. 我们想想如何统计答案. \(f[i][j]\) 表示 \(i\) 节点的子树拥有 \(j\) 个黑点最大的边权. \(g[i][j]\) 表示 \(i\) 节点的子树拥有不超过 \(j\) 个黑点的最大边权. \…