摘要:
方法很简单,树剖,把区间提取出来,打翻转标记,再放回去。本来以为写起来也很简单T_T 注:由于某种原因,我写的是把题目中的r忽略掉的一般情况,否则写起来简单得多。 阅读全文
摘要:
题意比较难懂?反正我为此特地查了优先级倒置和优先级置顶协议是什么。 读懂题以后就好办了,直接模拟即可。 由于数据范围较小,写得比较暴力,应该还有很大优化空间。 阅读全文
摘要:
有下界最小费用可行流。建图可以优化,我没优化。 阅读全文
摘要:
把点按坐标排序,每次找出最小的点,一定在最外层,再顺着把最外层的边删掉,经过了两次的边不会被冲毁。 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; typedef long long ll; void sol(ll x){ int y=0; for(ll i=2;i*i<=x;++i) if(x%i==0){ int j=0; for(;x%i==0;x/ 阅读全文
摘要:
BZOJ上数据范围没写清楚,实际数据范围如这个表格所示。 把$M_n$和$x$看成$\mathbb{F}_2$下的$m$维的列向量,则有转移矩阵 $$A = \begin{pmatrix} 0 & 0 & \cdots & 0 & -x_0\\ 1 & 0 & \cdots & 0 & -x_1\\ 阅读全文
摘要:
列出不等式,二分,半平面交判定。注意可行域可能为点或线段或无界区域。坐标范围略大,算出来a的范围约为-1e9~-1e-18(a<0),理论上要用long double,不过好像double也能过。 阅读全文
摘要:
设a[i]=bool(s[i]=='a'),b[i]=bool(s[i]=='b'),考虑a和a、b和b的卷积,由于卷积是对称的,就可以统计出不连续回文子串个数了。可能说得比较简略。再用manacher算出连续回文子串个数并减去。 阅读全文