摘要:
https://loj.ac/problem/6187 题解: 看到奇数时就应该想到随机的,最近两次遇到这种题了。 考虑给每一个数随机一个权值$v[i]$。 一个区间$[x,y]$所有数的出现次数是奇数,相当于$v[x..y]$的异或和 等于 $la[i] define fo(i, x, y) fo 阅读全文
摘要:
https://loj.ac/problem/3034 设$sa$表示a的前缀和,sb表示b的前缀和。 设$f[i][j]$表示n个中的前i个、m个中的前j个完成了,最大的分数和。 如果把第一维去掉,$f[i]$是由$f[i 1]$加上一些修改得到。 那么就是先: 1.$f[j]+=a[i](sa[ 阅读全文
摘要:
http://codeforces.com/problemset/problem/603/E 题解: 先思考对于一个图怎么样是合法的? 如果这个图有奇数大小的联通块,显然不行: 因为一条边会使度数和+2,度数和始终是偶数,而奇数大小联通块要求的度数和是奇数。 大胆猜测这也是充分条件。 证明的话,对于 阅读全文
摘要:
https://loj.ac/problem/3033 题解: 这题的线段树维护有点妙。 $|h[i] h[j]|=max(h[i] h[j],h[j] h[i])$,所以作两遍就不用考虑绝对值了,考虑现在是$h[j] h[i]$。 用线段树维护每个位置的标记, 每个位置的标记有$p[x]、q[x] 阅读全文
摘要:
https://loj.ac/problem/3155 题解: 考虑先预处理一个数组mx[S],其中S是一个二进制状态,记录着四个方向是否有病毒,在这种情况下,在那个字符串环上的最长连续段(注意这是个无限长的环,最长连续段可以是+∞)。 那么得到一种暴力的做法,枚举起点,然后宽搜,对于每一个点,在预 阅读全文
摘要:
例题: https://www.luogu.com.cn/problem/P1742 讲解: https://blog.csdn.net/wu_tongtong/article/details/79362339 关于求经过三点圆的一些注意事项: 三点共线时,取距离最大的两点作为圆的直径。 否则,求两 阅读全文
摘要:
Description: $n define fo(i, x, y) for(int i = x, B = y; i = B; i ) define ll long long define pp printf define hh pp("\n") using namespace std; defin 阅读全文
摘要:
https://loj.ac/problem/3153 题解: 若有$a[i]、a[j](i=a[i],a[j]$,则$a[i]、a[mid]$作为前两个一定更优。 那么,所以有用的$a[i]、a[j]$便缩减到了$O(n)$个,具体为每个数和它左边第一个比他的大的数形成的对+每个数和它右边第一个大 阅读全文
摘要:
题目地址: LOJ3252~3256 "「JOI 2020 Final」只不过是长的领带" 先把a、b分开排好序。 不难想到最优的方法是直接对应匹配。 所以每一个a[i]只会和b[i]或b[i+1]匹配。 a[i]和b[i]匹配适用于挖的点在i之后。 a[i]和b[i+1]匹配使用挖的点在i+1之前 阅读全文
摘要:
https://ac.nowcoder.com/acm/contest/3782/G 题解: 分治FWT裸题。 每个都相当于$(1+b[i]x^{a[i]})$,求这玩意的异或卷积。 先把a[i]相同的并在一起。 考虑分治,一个区间内的数的二进制的前若干位是相同的,所以只需要记录这个区间的数选了奇数 阅读全文