摘要:
感觉这题是真的神,,太瓜了根本想不到。 N个点M条边的无向图,询问保留图中编号在$[l,r]$的边的时候图中的联通块个数。 考虑每条边的贡献。一条边可以使联通块数量-1当且仅当加入这条边之后,不形成环即连接了两个联通块。 后加入的边如果形成了环呢?那么只要环中最早加入的边还在,就不会做出贡献。 那么 阅读全文
摘要:
树dp还是一如既往的烂呢。普通树转成左二子右兄弟树还是第一次用,思想完全没变吧,就是好写了。 题意就是给一棵树,树的点上有物品,边有长度,物品只能往祖先送,要修建$k$个接收的地方。令代价最小。(日了狗了沉船之后说话都说不清楚。还是看原题吧)$n \leq 100 , k \leq 50$//upd 阅读全文
摘要:
好羞愧啊最近一直在刷水。。。 题意:给定序列$c$的$a_i$,构造出一个序列$c$使得$\sum b_i$最大。 其中$a_i$表示以$c_i$结尾的最长上升子序列长度,$b_i$表示以$c_i$为开头的最长下降子序列长度。 首先$a_i = x$一定是从一个$a_j = x-1$转移而来的。这里 阅读全文
摘要:
%%% 给定一棵叶子不超过20的树,点有颜色,每两点间的路径构成一个颜色串,所有的串不同的有多少种。 神犇们都太强了! 首先以每个叶子为根,就得到了一个Trie树啊。 Trie树怎么建到SAM上呢,直接以Trie上的父亲节点在SAM中的位置作为$last$,和字符串一样加入建边更新就行了。 怎么把所 阅读全文
摘要:
真后缀自动机裸题。 不断在字符串后面加入数字。每次操作求子串数量,去重。 显然$ans=\sum len[u]-len[fa[u]]$。每次更改或新建了$fa$就去更新一下$ans$。 推一下式子就会发现复制节点的操作只是贡献了$len[copy]-len[np]$,就更妙了。 因为是$1e9$的字 阅读全文
摘要:
后缀自动机丝薄题。 求给定字符串$s$的第$k$大的子串。分unique之后的和不unique的两种询问。 首先构建出SAM。 相同子串算一个的情况: SAM上所有路径组成字符串$s$的全部子串,每个状态向下不管怎么走,形成的串都是以当前状态为前缀的。(废话) 所以我们只要知道以当前串为前缀的串有多 阅读全文
摘要:
typedef long long ll; bool check[N]; int mu[N],pri[N],tot; ll phi[N]; void init(int lim){ check[1]=1,phi[1]=0;mu[1]=1; for(int i=2;i<=lim;i++){ if(!check[i]){ pri[++tot]=... 阅读全文
摘要:
口胡一下怕忘了。应该会有错留坑回来改。 例题:bzoj2286: [Sdoi2011]消耗战 哔哔一下题意:边有边权。$m$次询问,每次给定$k$个点,割掉若干条边使得$1$号点与给定的点不连通,要求代价最小。 $n \leq 2e5 , \sum k \leq 5e5$ 首先这个$\sum k$就 阅读全文
摘要:
非常垃圾的一道平衡树,结果被日了一天。很难受嗷嗷嗷 首先不得不说网上的题解让我这个本来就不熟悉平衡树的彩笔很难受——并不好理解。 还好Sinogi大佬非常的神,一眼就切掉了,而且用更加美妙的解法。 题意在操作时,就是第i次把编号为i-1和编号i的后继分别提到根和根的右儿子,根的右儿子的左子树打上翻转 阅读全文
摘要:
我写的非常shi,还巨tm慢,不过。。。很好理解qwq 题意:给编号为1~n的书,支持操作: 1.把编号为x的放在第一个 2.放在最后一个 3.上移一个或下移一个或不动 4.询问编号为x的在第几个 5.第x个编号是几 我的方法是一直给每个点一个权值,以权值为关键字维护splay,这样和普通平衡树一样 阅读全文