摘要: n<=10000个点,m<=200000个操作,连接,断边,问两个点是否连通,保证连接过程中每个联通块都是树。 LCT。。 1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 //#in 阅读全文
posted @ 2018-01-15 20:58 Blue233333 阅读(144) 评论(0) 推荐(0) 编辑
摘要: n<=200000个点,从i会跳到$i+num_i$,保证$num_i>0$,m<=100000个两种操作:一、修改一个$num$;二、问从$i$开始跳多少步跳出这个序列。 大概是LCT的模板题了。 记住access操作,不停的旋完把右子树腾给儿子。其他可以自行推。 1 #include<strin 阅读全文
posted @ 2018-01-15 19:47 Blue233333 阅读(158) 评论(0) 推荐(0) 编辑
摘要: q<=1000个询问,每次问a,b,c,d:f(a,b)表示含a个A,b个B的字符串中,连续A或连续B最小的串中,字典序最小的一个串,输出这个串的c到d位。a,b<=5e8,d-c+1<=100。 首先可以确定这个“连续A或连续B的最小值”是:$\left \lceil \frac{p}{q+1} 阅读全文
posted @ 2018-01-15 11:15 Blue233333 阅读(450) 评论(0) 推荐(0) 编辑
摘要: n<=2e6的数组,m<=2e6个询问,对1<=i<=m的每个i问:只用<=i的数字填进数组,有多少种方案使数组的总gcd=1.强制把每个询问的答案求出来。 比如说现在有个确定的i=t,然后看看答案怎么算先。先把所有情况加起来,然后除去gcd=2,3,4,5,……的,那直接统计有多少gcd=2,3, 阅读全文
posted @ 2018-01-15 09:43 Blue233333 阅读(450) 评论(0) 推荐(0) 编辑
摘要: n<=1e6的树问所有路径的极差之和。 被遗忘的套路。。。以后绝对不会再忘了QAQ 只要算最大值之和即可,最小值同理。数字从大到小排序(反正都是要排序的,如果从大到小不行等会反过来试试),然后逐个考虑贡献,这样的话考虑完一个点就得把这个点周围所有的边断掉表示经过这些边的路径(即经过当前点的路径)不再 阅读全文
posted @ 2018-01-15 08:24 Blue233333 阅读(329) 评论(0) 推荐(0) 编辑