摘要: "传送门" 注意到答案为这个基环树直径$/2$ 因为是基环树,所以考虑把环拎出来.如果直径不过环上的边,那么可以在环上每个点下挂的子树内$dfs$求得.然后如果过环上的边,那么环上的部分也是一条链,考虑拆环为链,现在问题是一条链,每个点往下延伸若干长度,问最远的距离.每个点往下最长的长度可以随便预处 阅读全文
posted @ 2019-05-02 15:33 ✡smy✡ 阅读(189) 评论(0) 推荐(0) 编辑
摘要: "传送门" 注意到$N\ O\ I$三个字母都可以从左到右拆成三部分,即$N=$一个矩形+一堆矩形+一个矩形,$O=$一条+两条横的+一条,$I=$两条横的+一个矩形+两条横的,所以可以拆成$13$个部分转移($9$个字母部分,$4$个空白部分) 设$f_{i,j,l,r}$表示第$i$列,放的是字 阅读全文
posted @ 2019-05-02 15:21 ✡smy✡ 阅读(150) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题目中那两个递推式显然可以写成矩乘的形式,然后十进制快速幂即可.这里不再赘述 只有两个递推式,我们可以考虑一波推式子,首先第一行的元素应该分别是$1,a+b,a^2+ab+b,a^3+a^2b+ab+b...a^{m 1}+b\sum_{i=0}^{m 2}a^i$ 然后这样子推下去,第 阅读全文
posted @ 2019-05-02 15:06 ✡smy✡ 阅读(117) 评论(0) 推荐(0) 编辑
摘要: "传送门" 这题妙蛙 首先考虑构造出一个合法的树.先重新编号,把bfs序整成$1,2,3...n$,然后bfs序就是按照从上到下从左往右的遍历顺序,所以可以考虑对bfs序分层,可以知道分层方式只会对应一棵树.按照$2\to n$的顺序枚举,如果这个点在dfs序中的位置小于上一个,那么这个点必须放在下 阅读全文
posted @ 2019-05-02 14:51 ✡smy✡ 阅读(157) 评论(0) 推荐(0) 编辑
摘要: "传送门" 挺有意思的一道题 暴力60就是枚举每个向量暴力check,随机选向量就能多骗一些分 然后两个向量内积要模$k$为$0$,那么如果全部不为$0$就不合法.先考虑$k=2$,对于向量$i$,假如前面所有向量和他的内积为$1$,那么所有内积之和应该要和$i 1$模$2$同余,所以如果某个$i$ 阅读全文
posted @ 2019-05-02 14:36 ✡smy✡ 阅读(242) 评论(0) 推荐(0) 编辑
摘要: "传送门" 有匹配次数限制,求最小代价,这显然是个费用流的模型.每个点暴力和前面的点连匹配边,边数是$n^2$的. 然后发现可以转化成一个set,每次加入一个点,然后入点对set里面的出点连边.这个set可以用主席树实现,然后就主席树优化连边,点数边数都是$nlogn$的,~~然后就能过了~~ 注意 阅读全文
posted @ 2019-05-02 12:10 ✡smy✡ 阅读(138) 评论(0) 推荐(0) 编辑
摘要: "传送门" 可以枚举一个$a_i$,然后就是求$\sum_{x=0}^{\lfloor\frac{t 1 a_i}{p}\rfloor}[px+a_i \in B(\mod q)]$ 可以发现所有$px+a_i\mod q$的值是成环的,就可以求出这个环所有前缀中$\in B$的元素个数,然后那个式 阅读全文
posted @ 2019-05-02 12:02 ✡smy✡ 阅读(248) 评论(0) 推荐(0) 编辑
摘要: "传送门" 显然要写一个排序,那只要考虑cmp函数怎么写就行了.第$i$个字符串和第 $j$个,首先前$min(i,j) 1$个字符是相同的,然后就是要比较后缀$min(i,j)$和$min(i,j)+1$,先求lcp(要对$max(i,j) min(i,j)$取$min$),如果两个后缀往后跳lc 阅读全文
posted @ 2019-05-02 11:46 ✡smy✡ 阅读(192) 评论(0) 推荐(0) 编辑