摘要: 侵删。 2019年2月 关于导数 导数:复合函数求导 错排推导 3月 数位DP详解 并查集的拓展习题 4月 st表(其实主要是因为最后有一个分块构造st表的神奇思路) 区间类贪心问题。 7月 树状数组的高级应用by胡小兔 8月 洛必达法则:解决极限相关☆ tarjan LCA 9月 Nim游戏唯一看 阅读全文
posted @ 2019-02-12 22:57 Ametsuji_akiya 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 没必要看的垃圾玩意儿 阅读全文
posted @ 2019-02-12 22:52 Ametsuji_akiya 阅读(142) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-02-12 22:08 Ametsuji_akiya 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 作为一名失败的oier一直想写点什么,所以咕咕咕的内容更了。 阅读全文
posted @ 2019-12-06 00:43 Ametsuji_akiya 阅读(249) 评论(1) 推荐(1) 编辑
摘要: 贪心题怎么做都不会啊,果然还是考智商的 如果没有平局,很好整,直接每次从对方最小的开始找一个己方最小且比他大的,找不到就负,否则即胜,这个贪心显然是对的。但是现在有了平局的1分,就不好这样了,因为平局的情况有时候可以选,有时候又有更优的策略。。考虑这样一种贪心:先比双方最小的,如果己方最小完胜对方最 阅读全文
posted @ 2019-11-13 16:38 Ametsuji_akiya 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 众所周知,这个人Day2没有翻盘,于是这篇游记咕了。 阅读全文
posted @ 2019-11-12 16:16 Ametsuji_akiya 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 这是一个三元环计数的裸题,只是多了一个颜色的区分和权值的计算罢了。 有一种根号分治的做法(by gxz) 这种复杂度的证明特别显然,思路非常简单,不过带一个log,可以用unordered_map或者bitset之类的$O(1)$判连通。 我的做法的话采用了一个比较奇怪的思路?每条边,度数大的点向度 阅读全文
posted @ 2019-11-09 20:23 Ametsuji_akiya 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 考前随便做点水题愉♂悦身心 有助于退役 这题意思其实就是说要把外向基环树森林改成一个环的最小代价。 依照套路,先对每棵基环树的树做dp,这里因为要是环,要把所有的树都拆成链,然后连接。所以考虑以最小代价拆掉每一个树。 因为对于树的每层,只能选择出一个儿子作为链的部分保留下来,所以贪心的尽量选权值大的 阅读全文
posted @ 2019-11-08 20:25 Ametsuji_akiya 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 实际上就是一般基环树DP套路性做法,断环成树,见过一题就知道了,具体可以看上一篇。这题基本一致。。。也是考虑断开后两点的影响关系分两种讨论。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorith 阅读全文
posted @ 2019-11-07 21:59 Ametsuji_akiya 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 实际上基环树DP的名字是假的。。 这个限制关系可以看成每个点有一条出边,所以就是一个内向基环树森林。 找出每个基环树的环,然后对于树的部分,做DP,设状态选或不选为$f_{x,0/1}$,则 $f_{x,0}=\sum\limits_{y\in son_x} \max\{f_{y,0},f_{y,1 阅读全文
posted @ 2019-11-07 19:09 Ametsuji_akiya 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 发现是一个类似于“纸牌均分”的问题。然后发现,只要列数整除目标、行数整除目标就一定可以。 如果只移动列,并不会影响行,也就是同一行不会多不会少。只移动行同理。 所以可以把两个问题分开来看,处理起来互不干扰。 然后就是一个经典的“环形纸牌均分”问题做两次即可。 注意细节:如果有两个相邻的点,由题意,他 阅读全文
posted @ 2019-11-07 15:29 Ametsuji_akiya 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 基环树直径裸题。 首先基环树直径只可能有两种形式:每棵基环树中的环上挂着的树的直径,或者是挂在环上的两个树的最大深度根之间的距离之和。 所以,先对每个连通块跑一遍,把环上的点找出来,然后对环上每个点跑一遍树的直径(这里采用DP形式,可以顺便求出最大深度,注意DP树的直径方法。。就是考虑跨过每个点的链 阅读全文
posted @ 2019-11-06 18:39 Ametsuji_akiya 阅读(117) 评论(0) 推荐(0) 编辑
摘要: A 货物收集 显然是一个二分答案的题。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue> 7 #define db 阅读全文
posted @ 2019-11-05 16:48 Ametsuji_akiya 阅读(270) 评论(0) 推荐(1) 编辑
摘要: 单峰函数的求极值一般采用三分法(当然求导然后二分零点也是可以的。。)。 这题的行走方式一定是先走AB一段,然后离开,走到CD上,然后再在CD上走到D点。 所以可以看成有三条线段,答案为$|AP|/p+|PQ|/r+|RD|/q$。然后这个不妨先固定P点。 然后后面这个两端线段的比例之和是一个单谷函数 阅读全文
posted @ 2019-11-05 11:17 Ametsuji_akiya 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 讨论帖:线段树二分的题。。我还考场切过。。白学 这题我一年前的模拟赛考场还切过,现在就不会了。。好菜啊。 显然直接线段树拆成$\log n$个区间,然后每个区间在进行线段树二分即可。 UPD:复杂度分析。貌似是$O(n\log n)$的/yiw。每个区间线段树二分,左儿子min小于查询的x就走左儿子 阅读全文
posted @ 2019-11-04 21:24 Ametsuji_akiya 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 第一问简单不讲。 第二问简化后问题是给一张DAG求最少添加几条边使得DAG变成一个SCC。首先所有中间点(有入度有出度)肯定直接顺着走到无出度点,所以肯定是无出度点连向无入度点。 把无入度点作为点集S,把无出度点作为点集T。 二分图连边表示S点(入度为零)可以走到T点(出度为零),然后先暴力匹配,表 阅读全文
posted @ 2019-11-01 14:50 Ametsuji_akiya 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 收获挺大的一道题。 这里的限制大小可以做差分约束,从$y\to x$连$1$,表示$y\le x-1$即$y<x$,然后跑最长路求解。 但是,如果这样每次$k+1$个小区间每个点都向$k$个断点连边显然爆炸。。考虑优化建边。 发现这里是每个小区间各点连边,所以可以线段树优化,不过每个小区间都要向$k 阅读全文
posted @ 2019-11-01 08:45 Ametsuji_akiya 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 方法一: 朴素思路:果断建图,每次二分出一个区间然后要向这个区间每个点连有向边,然后一个环的话是可以互相引爆的,缩点之后就是一个DAG,求每个点出发有多少可达点。 然后注意两个问题: 上述建边显然$n^2$爆炸。因为是区间建边,所以用线段树建边优化,不过这题比较特殊,只是点向区间连边,分析线段树建边 阅读全文
posted @ 2019-10-31 15:16 Ametsuji_akiya 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 新技能get✔。 线段树优化建边主要是针对一类连续区间和连续区间之间建边的题,建边非常的优秀。。 这题中,每次要求$[l1,r1]$每一点向$[l2,r2]$每一点建无向边,然后单元最短路。 暴力建边,边数$O(n^2m)$,时空双炸。 优化一点的建边,对于一个区间的点,把他们统一向一个虚点连零边, 阅读全文
posted @ 2019-10-30 21:41 Ametsuji_akiya 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 做这题的时候有点怂。。基本已经想到正解了。。结果感觉做法有点假,还是看了正解题解。。 首先提到简单路径上经过的点,就想到了一个关于点双的结论:两点间简单路径上所有可能经过的点的并等于路径上所有点所在点双的并,也就是说,在建一棵圆方树,方点表示所在点双里的最小点权,两个圆点之间的路径上所有方点的最小值 阅读全文
posted @ 2019-10-30 15:31 Ametsuji_akiya 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 主要卡在一个结论上。。关于点双有一个常用结论,也经常作为在圆方树/简单路径上的良好性质,对于任意点双内互不相同的三点$s,c,t$,都存在简单路径$s\to c\to t$,证明不会。可以参见clz博客。。我就是跟着他学的 然后就好办了,转化为树上两点计经过点双内所有点个数,然后赋权后变为统计两两圆 阅读全文
posted @ 2019-10-30 09:50 Ametsuji_akiya 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 首先研究环上性质,发现如果状态不变的边就不需要动了,每次改的环上边肯定都是起末状态不同的边且仅改一次,因为如果有一条边在多个环上,相当于没有改,无视这条边之后,这几个环显然可以并成一个大环。所以,我们只关注起末状态不同的边。 然后,这些边形成一张图。对于每个连通块,如果有解的话,应当是一堆边不相交的 阅读全文
posted @ 2019-10-29 16:06 Ametsuji_akiya 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目lyd又虐狗 这题和luogu的某道无序字母对这题很像,只不过,这里相当于每次是要求一个二进制$k$位的数通过前面删掉一位,后面再加一位,变成下一个数,于是可以设计状态:对于每一个$k$位的二进制数$(\overline{x_1x_2x_3...x_k})_2$,在点$(\overline{x_ 阅读全文
posted @ 2019-10-29 11:44 Ametsuji_akiya 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 找欧拉回路的模板题。 知识点详见图连通性学习笔记。 注意一些写法上的问题。 line37&line61:因为引用,所以j和head值是同步更新的,类似于网络流的当前弧优化,除了优化枚举外,这样还有一个好处就是这个点所有边遍历完退回的时候,j直接就是和head一样是0,避免退回的时候枚举边,但是要注意 阅读全文
posted @ 2019-10-28 19:18 Ametsuji_akiya 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 首先转化条件,把无仇恨的人连边,然后转化成了求有哪些点不在任何一个奇环中。 一个奇环肯定是一个点双,所以想到处理出所有点双,但是也可能有的点双是一个偶环,有的可能是偶环和奇环混杂,不好判。 考察奇环性质。发现如果一个点双中只要存在一个奇环,那么任何一个点都会在至少一个奇环之中,这一点可以通过画图说明 阅读全文
posted @ 2019-10-28 09:06 Ametsuji_akiya 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 首先同一个点双内部的加边肯定不影响。。所以先缩点成树,然后每次加一条边,这条对应的树上路径上所有边就都不是桥了,且每次操作独立作用,不相互影响(不过有可能本来一条边已经不是桥了又被标记了一次),所以每次相当对树链做一次链覆盖,统计未覆盖边。这个是链剖板子。。$O(N\log^2N)$ 1 #incl 阅读全文
posted @ 2019-10-25 07:34 Ametsuji_akiya 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 这题转化一下题意就是给一堆形如$a_i + a_j \ne c\quad (a_i\in [0,1],c\in [0,2])$的限制,问从开头开始最多到哪条限制全是有解的。 那么,首先有可二分性,所以直接二分枚举最大处,然后把这些限制加边做一次2-sat就好了。连边的话注意一下细节就行,$c=0$时 阅读全文
posted @ 2019-10-24 14:32 Ametsuji_akiya 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 翻译 对于一扇门,如果是关的,那么他必须使用其中一个开关开开来,如果是开的,要么使用两个开关,要么啥都不做。这样,每扇门恰好对应两种状态,要选一个。 考虑用2-SAT模型解决。连边的话是对于一个机关,所有他控制的门都应该一起选(具体地说,对于一扇关闭的门,这个机关是他的第几个机关,就是哪个状态,如果 阅读全文
posted @ 2019-10-24 10:46 Ametsuji_akiya 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 不想翻译了,直接放luogu翻译 说了没有偶环,也就是说全是奇环,再结合二分图性质,那么暴力的话,固定左端点,增大序号,加点直到产生环就不合法了。也就是说,任何一个环,只要他上面的数全都被加了,就不合法了,那么,环上的数若最大$\text{m2}$,最小$\text{m1}$,那么如果当前枚举的子区 阅读全文
posted @ 2019-10-23 17:57 Ametsuji_akiya 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意:给无向图每一条边定向,使得每个点可达点数$R_i$最小值尽可能大,求方案。 条件反射想到二分答案,然后看怎么检验,发现要让所有点$R_i$大于等于某一个值,首先我们关注某些特殊的子图:如果有环的话,显然可以让他定向后各点互达,并且这样的定向并不会影响其他点的$R$。进一步看,如果一个子图,定向 阅读全文
posted @ 2019-10-23 17:14 Ametsuji_akiya 阅读(247) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-10-22 20:03 Ametsuji_akiya 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 显然并不能直接dfs,因为$m$会非常大,复杂度就是$O(mn)$; 这题有三种做法,都用到了bitset的优化。第二种算是一个意外的收获,之前没想到竟然还有这种神仙操作。。 方法一:缩点+DAG上bitset优化的统计 做有向图连通问题上来先看可不可以缩点首先一个环内点是可以相互连通的,又发现DA 阅读全文
posted @ 2019-10-22 19:19 Ametsuji_akiya 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 由于bitset极其不熟练且在实际题目中想不起来运用它来优化,于是练了几道题。 这题是一个分组的bool背包,每组必须选一个,暴力的话是$O(n^5)$。 如果dp数组不要一维滚动的话,有两种枚举方法,一种是枚举体积放外层然后同一组物品放内层,另一种是反过来。 for i 1...n for j 1 阅读全文
posted @ 2019-10-22 16:42 Ametsuji_akiya 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 圆方树新技能get。具体笔记见图连通性问题学习笔记。 这题求无向图的必经点,这个是一个固定套路:首先,一张连通的无向图中,每对点双和点双之间是以一个且仅一个割点连接起来的(如果超过一个就不能是割点了),那么,在一个点双内部,从出发点开始,要走到另外一个点双中,这个中间的割点就是一条必经之路(没有其他 阅读全文
posted @ 2019-10-22 14:20 Ametsuji_akiya 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 其实有些题真的是,即使翻看了题解,也可以解释一二原因,也并不能对这种做法有深深的认同感。。 因为题意说的是让序号小的优先在拓扑序中向左靠,也就是说,比如1号会被前面很多大序号的节点“堵住”,但是仍要优先让他先出来,所以这时候按字典序最小来做拓扑是不对的。。````` 反过来考虑: 引理:对于一张DA 阅读全文
posted @ 2019-10-22 09:24 Ametsuji_akiya 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 发现如果$B_i$和$G_j$配对,那么$B_j$又要找一个$G_k$配对,$B_k$又要找一个$G_l$配对,一直到某一个$B_x$和$G_i$配对上为止,才是不稳定的。 暴力是二分图匹配、匈牙利算法(据说可过)。仔细观察,将配对关系和潜在关系全连边,不稳定的结果则是一个环。 但是不能直接就这样找 阅读全文
posted @ 2019-10-21 18:51 Ametsuji_akiya 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 给你一个连通图,你可以任意加一条边,最小化桥的数目。 添加一条边,发现在边双内是不会减少桥的。只有在边双与边双之间加边才有效。于是,跑一遍边双并缩点,然后就变成一棵树,这样要加一条非树边,路径上的点(边双)就都变成一个大边双了,所以问题转化为求树上最长路径,跑直径即可。 1 #include<ios 阅读全文
posted @ 2019-10-21 15:31 Ametsuji_akiya 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 看到删去一个点,需要剩下的都和关键点连通,有端联想到找点双,因为他怎么删点都是连通的。 对于一个孤立的点双,至少要设两个关键点。 如果两个点双以一个割点连接,假设断掉这个割点,两个块至少要各设一个关键点。类推,所以对于所有含有一个割点的点双,至少要包含非割点的一个关键点。 如果一个点双上有好多个割点 阅读全文
posted @ 2019-10-21 14:36 Ametsuji_akiya 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 首先看得出缩点的套路。跑出DAG之后,考虑怎么用逆行条件。首先可以不用,这样只能待原地不动。用的话,考虑在DAG上向后走,必须得逆行到1号点缩点后所在点的前面,才能再走回去。 于是统计从1号点缩点所在点到所有走到的点的最长距离,以及所有可以走到1号的点到1号的最长距离。然后,看在哪里逆行,可以暴力枚 阅读全文
posted @ 2019-10-21 10:46 Ametsuji_akiya 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 于是,由Kruskal衍生性质(见本人MST学习笔记),可以单独处理每次相同的一堆边,因为保证了相同权值边不超过$10$条,所以直接爆搜即可。$O(可过)$。 细节:其实如果把并查集写成按秩合并,可以直接搜每条边选不选,选就继续搜下一条边,直到加入的边等于MST中该权值边数且无环,回退的时候撤回就行 阅读全文
posted @ 2019-10-17 21:18 Ametsuji_akiya 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一道结论题:如果最小生成树和最大生成树之间存在fib数,成立。不存在或者不连通则不成立。由于是01图,所以这个区间内的任何生成树都存在。 证明:数学归纳?如果一棵树没有办法再用非树边0边替代1边了,那他就是最小生成树。如果一棵生成树大于最小生成树,那么他显然存在可以被替换的1边,否则会与最小矛盾。最 阅读全文
posted @ 2019-10-17 17:50 Ametsuji_akiya 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意:一张图求每条边边权最多改成多少可以让所有MST都包含这条边。 这题还是要考察Kruskal的贪心过程。 先跑一棵MST出来。然后考虑每条边。 如果他是非树边,要让他Kruskal的时候被选入,必须要让他连的两个点$u,v$连通之前被选上,也就是说,必须得小于MST上$u,v$路径中的至少一条边 阅读全文
posted @ 2019-10-17 12:11 Ametsuji_akiya 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 很妙的一道题。 由于本人过于zz,不会这道题,通过厚颜无耻翻阅题解无数终于懂了这道题,所以这里转载一位神仙的blog。 没有看懂?没事,再来一篇。 这题个人认为主要在于转化题意和建图,这两点想通了应该就不难了。 转化题意:每个长只要互不相等即可,不管什么严格大于。 建图:限制了每个长只能被选一次,另 阅读全文
posted @ 2019-10-16 20:33 Ametsuji_akiya 阅读(120) 评论(0) 推荐(0) 编辑