题目链接: http://172.16.0.132/senior/#main/show/5852 题目: 题目大意: 多组询问,每次询问树上两条链是否相交 题解: 两条链相交并且仅当某一条链的两个端点的LCA在另一个端点上 对于每次询问,我们分别处理出两条链端点的LCA,通过倍增判断是否存在一条链的LCA在另一条链上 #include<algorithm> #include<cstring> #include<cstdio> #include<iostream&g…
题目链接: https://jzoj.net/senior/#main/show/5177 题目: 题解: 首先选出的泡泡怪一定是连续的一段 L,R 然后 L 一定属于虫洞左边界中的某一个 R 也同样是这样的 这样就可以枚举 L 和 R,$O(N)$判断是否可行(显然不可能重复经过某个点),总复杂度 $O(NM^2)$ 我们看到 R<=1e6 选择二分 R 而不是枚举,这样就可以了 #include<algorithm> #include<cstring> #include&…
题目链接: http://172.16.0.132/senior/#main/show/5875 题目: 题解: 注意这题只能经过开放的港口 我们考虑用vector存下每个点不能到的点,并把并让vector里面的元素升序排序,这样我们就可以二分查找一个点是否与另外一个点相连 接下来我们对于每一个开放的港口bfs,每次bfs都把属于这个连通块的港口去掉 考虑开两个队列来bfs,队列1存储的是当前连通块里还没有拓展的点,队列2里存储的是还剩下的点,看看代码就可以理解了 #include<algori…
T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check时间复杂度不太对),check的时候把大于等于当前值的设为1,小于当前值的设为-1,然后题目就变成了查询是否有区间的值大于零(因为和它相同的我们也设为了1). 查询的时候维护一个前缀最小值. #include <iostream> #include <cstdio> #include…
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网NOIP赛前集训营-普及组(第二场) 题目链接:https://www.nowcoder.com/acm/contest/165#question A 你好诶加币 设最大值为maxx,最小值为minn 分三种情况: \(1.a > 0 且b > 0\) 会加爆long long,所以化简式子 \(m…
字符串(string) Description 小林与亮亮正在做一个游戏.小林随意地写出一个字符串,字符串只由大写 字母组成,然后指定一个非负整数 m,亮亮可以进行至多 m 次操作,每次操作 为交换相邻两个字符.亮亮的目标是使得操作后的字符串出现最长相同的字符的 长度最大.你能帮亮亮计算一下这个最大长度是多少吗? Input 第一行一个字符串 S. 第二行一个整数 m. Output 只有一个整数,表示所求的最大长度. 表示刚开始想了一个小时的\(DP\) 然后还出样例了, 要不是手出了一组样例…
题目链接: https://jzoj.net/senior/#main/show/5178 题目: 题解: 我们定义$f[pos]$表示以位置pos为后缀的字符串对答案的贡献,答案就是$\sum_{i=1}^{n} f[i]$ 考虑怎么得到f数组,我们有$f[i]=f[nxt[i]]+[i是偶数]$ 其实蛮显然的,$f[i]$和$f[nxt[i]]$除了多出前缀i这个贡献没什么区别 #include<algorithm> #include<cstring> #include<…
1.咒语 (curse.pas/c/cpp) [题目描述] 亮亮梦到自己来到了魔法城堡,但一扇巨大的石门阻拦了他通向城堡内的路.正当他沮丧之际,突然发现门上有一处机关,机关上有一张很长的纸条.亮亮拿起纸条的一端,只见上面写着打开机关的方法:“打开机关需要念动符咒,咒语是一串长为 L 的由 0 和 1 组成的字符串.在这张长纸条上列了 n 个长为 L 的字符串,正确的咒语即是在纷繁的 2^L 种字符串中,与这些纸条上的字符串相异度之和最小,并且在满足这一条件下, 0 的个数最多的字符串.两个字符串…
tj:一道好題 看區間操作可以想到線段樹 並聯操作公式:a1∗a2/(a1+a2)a1*a2/(a1+a2)a1∗a2/(a1+a2) 串聯操作公式:a1+a2a1+a2a1+a2 我們發現,一個區間內最大的電阻,串聯/並聯上一個電阻,其阻值最大 串聯不用解釋.證明一下並聯:設最大的為a,另外一個為b,串聯上c 則第一個阻值為a∗c/(a+c)a*c/(a+c)a∗c/(a+c) ,第二個為b∗c/(b+c)b*c/(b+c)b∗c/(b+c),現在要比較b∗a+a∗cb*a+a*cb∗a+a∗…
能量(energy) Description ​ 有一块能量田,它的形状是 n*m的矩形,每一个格子上都有一个能量值 a[x][y] (可正可负).一块矩形田的能量定义为它的每个格子的能量值之和. ​ 现在,亮亮需要选择一块正方形的能量田,用它的能量来为自己的魔法棒充 值.他当然希望所选择的能量田所含的能量最大,请你帮助他求出这个最大值. ​ 数据保证能量田中至少有一个格子的能量值非负. Input 一行两个整数 n 和 m. 接下来 n 行,每行 m 个整数. Output 输出只有一个整数,…