摘要: 一个不用保证边界没有颜色的做法。(但是四个角落有颜色还是不行) 只需要像图中那样,把一个贪吃蛇的形状染上色,再把读入的有颜色的格子给两个都染上色即可。 #include<bits/stdc++.h> using namespace std; #define uu unsigned #define s 阅读全文
posted @ 2021-09-09 16:37 yugyppah656 阅读(238) 评论(1) 推荐(2)
摘要: 定理内容:对于一个二分图,如果所有左边都小于等于右边,存在完备匹配,即所有左部点都被匹配。 必要性显然。充分性可以归纳。 设左部点为$n$,$n=1$显然成立。 第一种情况,左边存在一个子集(不是全集)和右边对应的一样大,根据归纳假设,点集内部存在完美匹配。删掉这些点,如果出现了一个左边大于右边,显 阅读全文
posted @ 2021-08-17 20:16 yugyppah656 阅读(590) 评论(0) 推荐(5)
摘要: 4次FFT 1.21s #include<bits/stdc++.h> using namespace std; #define forg(i,x) for(register int i=fir[x];i;i=nxt[i]) #define uu unsigned #define scanf a14 阅读全文
posted @ 2021-06-25 19:30 yugyppah656 阅读(174) 评论(0) 推荐(0)
摘要: 某些题解能不能写的清楚一点啊。。 首先容易发现一个性质:每个人肯定是全速走,发生一次碰撞以后拐弯去碰另一个。然后就得到了$O(n\log V)$的做法。 可是这没有arc的b格!还需要想线性做法。 首先考虑不合法的情况。什么时候一个人往右走,一直碰不到右边的点?肯定右边的点也在往右走,右边的点的右边 阅读全文
posted @ 2021-06-23 14:40 yugyppah656 阅读(207) 评论(1) 推荐(1)
该文被密码保护。 阅读全文
posted @ 2021-06-14 10:04 yugyppah656 阅读(338) 评论(3) 推荐(9)
摘要: 本博客只是论文的一小部分。 这个应该算pam最基础的扩展了。例题hdu5394 直接暴力插入的复杂度肯定是不对的,是n^2的,我们需要优化找fail那个函数。 也就是说,我们要优化这样的操作,对于pam上的一个节点x,找到最长的前驱为c的回文后缀。 特判第一步就找到的情况。否则这个前驱字符一定在x内 阅读全文
posted @ 2021-04-22 17:42 yugyppah656 阅读(164) 评论(0) 推荐(2)
摘要: 补一年前的坑。 有向图强连通分量 inline void tarjan(int x){ dfn[x]=low[x]=++dt,sta[++tp]=x,ins[x]=1; forg(i,x) if(!dfn[to[i]])tarjan(to[i]),low[x]=min(low[x],low[to[i 阅读全文
posted @ 2021-04-03 17:56 yugyppah656 阅读(114) 评论(0) 推荐(0)
摘要: 我的做法从一篇古老的博客学的,好像网上很少。不需要任何特判! 首先当然要算$a_i$的范围。 设最高位是$2^x$,考虑这一位能异或出来的概率。很多方法都能算出来$\frac{1}{2}$。 所以$\frac{1}{2}*2^{xk}<2^{63}$ 也就是$xk<64$ 这样就知道了$k=1$的2 阅读全文
posted @ 2021-03-05 11:38 yugyppah656 阅读(127) 评论(0) 推荐(0)
摘要: 是否还在为斜率优化发愁?怎么理解?怎么写?快看本博客,大伙看了都说好,史上最优秀的小白级讲解,令人拍案叫觉,享誉全球。 我是认真来作解说的 先看一道经典题特别行动队 可以列出转移方程 \(dp_i=\max \left\{ dp_j+a(sum_i-sum_j)^2+b(sum_i-sum_j)+c 阅读全文
posted @ 2021-02-17 10:27 yugyppah656 阅读(94) 评论(0) 推荐(1)
摘要: 代码是最好的教程。 广义sam int tt=1; inline void extend(int c){ int p=lst,q,np,nq; if(ts[p][c]){ q=ts[p][c]; if(len[q]==len[p]+1)lst=q; else{ lst=nq=++tt; memcpy 阅读全文
posted @ 2020-12-25 12:00 yugyppah656 阅读(144) 评论(1) 推荐(0)