【NOI2018】】的更多相关文章

[BZOJ5416][NOI2018]冒泡排序(动态规划) 题面 BZOJ 洛谷 UOJ 题解 考场推出了就是两个上升子序列,并且最长下降子序列长度不超过\(2\)...然后大力暴力状压\(dp\)混了\(44\)分...这个结论并不是很难证明,考虑一下冒泡排序的过程就好了. 实际上\(O(n^2)\)并不是很难吧... 先不考虑字典序的问题,设\(f[i][j]\)表示长度为\(i\)的\([1,i]\)的排列,并且第一个数为\(j\)的合法排列方案数. 考虑如何转移,如果\(j=1\),那么…
[NOI2018]屠龙勇士(数论,exgcd) 题面 洛谷 题解 考场上半个小时就会做了,一个小时就写完了.. 然后发现没过样例,结果大力调发现中间值爆\(longlong\)了,然后就没管了.. 然后又没切掉...我是真的傻逼... 首先每次选择的刀一定,直接一个\(multiset\)就算出来了. 然后对于每关都单独解一个方程 \(atk[i]x+p[i]y=a[i]\),直接\(exgcd\)求解即可. 但是注意题目方程的含义,所以\(x\gt 0,y\le 0\) 所以要解出来之后还需要…
[NOI2018]归程(克鲁斯卡尔重构树) 题面 洛谷 题解 我在现场竟然没有把这道傻逼题给切掉,身败名裂. 因为这题就是克鲁斯卡尔重构树的模板题啊 我就直接简单的说一下把 首先发现答案就是在只经过海拔大于\(p\)的边的情况下,所有点到\(1\)号点中最短路最小的那个点.所以预处理最短路径,构建克鲁斯卡尔重构树,直接倍增+线段树就好了. 还有一种基于离线做法的方法. 我们发现离线做法只需要按照所有询问排序, 然后利用并查集按照海拔高度从小往大合并(这个其实就是克鲁斯卡尔) 这样子就可以利用可持…
description 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 nn 个节点.mm 条边的无向连通图(节点的编号从 11 至 nn).我们依次用 l,al,a 描述一条边的长度.海拔. 作为季风气候的代表城市,魔力之都时常有雨水相伴,因此道路积水总是不可避免 的.由于整个城市的排水系统连通,因此有积水的边一定是海拔相对最低的一些边.我们用水位线来描述降雨的程度,它的意义是:所有海拔不超过水位线的边都是有积水的. Yazid 是一名来自魔力之都的OI…
Description Hint Solution 不妨先讨论一下无区间限制的做法. 首先"子串"可以理解为"前缀的后缀",因此我们定义一个 \(\lim(i)\),表示 \(T\) 的一个前缀 \(T[1\cdots i]\) 中,选取一个最长后缀,使得这个后缀在 \(S\) 中出现过.\(\lim(i)\) 就是这个最长后缀的长度. 其实与朴素的 SAM 求最长公共子串有点相似,这里主要是求 本质不同的公共子串的个数. 我们对 \(S\) 建 SAM,然后把 \…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ394.html 题解 首先我们发现一个数不能既被往左换又被往右换.也就是说不能有任何一个数左边有比他大的,又被有比他小的. 也就是最长下降子序列长度不超过 2 . 所以我们一定可以找到 2 个上升序列包含所有的数. 于是容易想到 $O(n^2)$ 的 dp: $dp_{i,j}$ 表示加入了 $i$ 个数,最大值为 $j$ 的情况下,填完的方案数. 那么,如果下一个数小于 $i$ ,那肯定是填小于 $j…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ395.html 题解 记得同步赛的时候这题我爆0了,最暴力的暴力都没调出来. 首先我们看看 68 分怎么做 ——求两个串的本质不同的公共子串个数. 它是一个模板题,然而我当时并不会,甚至连SAM都忘了怎么写QAQ. 再简化一下:如何求一个串的本质不同的子串个数. 给串建一个SAM,把所有节点代表的字符串个数(也就是 Max(x) - Max(fa(x)) 加起来就好了. 回到上一个问题. 假设这两个串分…
题目:http://uoj.ac/problem/393 题解:https://www.cnblogs.com/HocRiser/p/9368067.html 但过不了 UOJ 的 hack 数据.不知道是哪里出错.之后再管吧. #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<queue> #define mkp make_pair…
总之国赛已经过了1个月了. 感谢北大当初给我的一本约救我狗命,不然国赛就要没学上了. 铜牌倒数十多名,我觉得我也是混到了一种境界. 虽然对于集训队已经失去梦想,但是,Day1全场堪称最低的21分,也是有点过分了吧? 多组数据,万万没想到啊……我简直石乐志,雅礼考了10天的捆绑,让我以为全世界都是捆绑?还是我是个瞎子? 想想还是很懊恼的吧. 但一切都结束了. 北大一本也是我喜出望外的结果. 祝以后的OIer都有好的结果. 顺便一说……我突然意识到我缺个女朋友,mmp,怎么他们都有啊. 有空再把学过…
题目大意:有一张$n$个点$m$条边的图,每个边有两个属性$a_i,b_i$.有$Q$个询问,每个询问给出$v,p$,表示所有边中$b_i\leqslant p$的边会被标记,在点$v$,可以通过不被标记的边到达任意点,然后用最小的$\sum a_i$到达点$1$,输出这个最小值.多组数据 $n\leqslant2\times10^5,m\leqslant4\times10^5$,最多$3$组数据. 题解:$\mathrm{kruskal}$重构树,按$b_i$从大到小建重构树,可以发现若一个点…