摘要:
A. Bubbles 枚举两个点,求出垂直平分线与$x$轴的交点,答案=交点数+1。 时间复杂度$O(n^2\log n)$。 B. Drop7 留坑。 C. Eulerian Graphs 留坑。 D. At Least Half 枚举所有质数$p$,找出所有$p$的倍数,设$s[i]$表示前$i 阅读全文
摘要:
A. Anniversary Cake 随便挑两个点切掉就好了。 B. Boys and Girls 分类讨论构造。 C. CodeCoder vs TopForces 将所有人按两种rating分开排序,相邻的之间连有向边,那么SCC缩点之后,剩下的图是个竞赛图,求出拓扑序之后前面所有的点都是可达 阅读全文
摘要:
A. Altitude 从小到大加入每个数,用set查找前驱和后继即可。 时间复杂度$O(n\log n)$。 B. Blocking Buffer 观察发现$\gcd(r,w)$都是可以达到的,于是欧几里得求一下即可。 C. Catch Me If You Can 留坑。 D. Demolitio 阅读全文
摘要:
\[\begin{eqnarray*}ans&=&\sum_{i=1}^ng(i)\\&=&\sum_{i=1}^n\sum_{d|i}\mu^2(d)\\&=&\sum_{i=1}^n\sum_{d|i}\sum_{k^2|d}\mu(k)\\&=&\sum_{k=1}^n\mu(k)\sum_{ 阅读全文
摘要:
A. Nanoassembly 首先用叉积判断是否在指定向量右侧,然后解出法线与给定直线的交点,再关于交点对称即可。 B. Playoff 建树根据dfs括号序列判断是否成祖孙关系即可。 C. Inequalities 差分约束系统,下界直接作为初始值,然后判断是否出现正环或者超过上限,需要SLF优 阅读全文
摘要:
A. Toda 2 按题意模拟即可。 B. Minimum and Maximum 首先将1和2,3和4,5和6,...两两比较,得到较大值和较小值,再在这$\lceil\frac{n}{2}\rceil$对中大的比大的,小的比小的即可。 C. Bulmart 首先BFS求出任意两点间的最短路,然后 阅读全文
摘要:
首先不难列出DP方程: $dp[x]=\min(w[x],h[x])$ $h[x]=\sum dp[son]$ 当$w[x]$增加时,显然$dp[x]$不会减少,那么我们求出$dp[x]$的增量$delta$,若$delta=0$那么什么都不需要做。 对于$x$来说,它的$h$值不变。 对于$x$的 阅读全文
摘要:
设$D(A)\leq D(B)$,从小到大枚举$D(A)$,双指针从大到小枚举$D(B)$。 那么对于权值不超过$D(A)$的边,可以忽略。 对于权值介于$(D(A),D(B)]$之间的边,需要满足那两个点不能都在集合$A$。 对于权值大于$D(B)$的边,需要满足那两个点不在同一个集合。 所以建图 阅读全文
摘要:
将边按权值$A$从小到大排序,从小到大枚举$\max(A)$,然后双指针从大到小枚举$\max(B)$。 按权值$B$用大根堆维护所有已经加入的边,每次$\max(B)$减少时,不断取出权值$B$最大的边看看是否需要删除即可。 那么只需要检验这个图是否只有一个强连通分量。 考虑使用Kosaraju算 阅读全文
摘要:
考虑KMP,设$f[i][j][S]$表示还剩最低$i$位没有确定,目前KMP匹配到了$j$这个位置,前缀匹配情况是$S$,最终会匹配到哪里,中途匹配成功几次。 其中$S[i]$是一个pair<int,long long>,表示对于前面已经确定的高位,如果从$i$开始匹配,那么最终会匹配到哪里,中途 阅读全文
摘要:
每种状态最多只有三种后继状态:中间往左跳,中间往右跳,两边往中间跳。 如果把它们分别看成左儿子、右儿子、父亲的话,那么会得到一些二叉树。 取出起始状态和终止状态往上跳$k$步的所有状态,其他状态我们只关心它们到关键状态的距离。 于是设$dp[i][j][k]$表示从起始状态跳了$i$步,目前位于状态 阅读全文
摘要:
A. My Friend of Misery 计算出答案的上下界即可。 时间复杂度$O(n)$。 B. Brother Louie 纵坐标根据深度即可计算,比较麻烦的是横坐标。 设最左边的叶子的横坐标为$t$,那么每个点的横坐标都能表示为$t+A_ir+B_ih$,根据$x_{root}=0$,可以 阅读全文
摘要:
\[\begin{eqnarray*}ans&=&\sum_{i=1}^nf(i)\\&=&\sum_{i=1}^n\sum_{d|i}\gcd(d,\frac{i}{d})\\&=&\sum_{i=1}^n\sum_{d|i}\sum_{k|d,k|\frac{i}{d}}\varphi(k)\\ 阅读全文
摘要:
设 \[f(n)=\sum_{d|n}\mu^2(d)\] 则 \[\begin{eqnarray*}\sigma_0(n^2)&=&\sum_{d|n}f(d)\\ans&=&\sum_{i=1}^n\sigma_0(i^2)\\&=&\sum_{i=1}^n\sum_{d|i}\sum_{k|d 阅读全文
摘要:
菜鸡队训练实录。 现场赛记录:[名称:奖项/排名] 2016: ZJPSC:Gold/1 CCPC中南邀请赛:Gold/1 ICPC Dalian:Gold/24 ICPC Beijing:Gold/9 CCPC Final:Bronze/40 ICPC China-Final:Gold/12 20 阅读全文
摘要:
shift-and算法,设$v[i][j]$表示文本串长度为$i$的前缀能否匹配模式串长度为$j$的前缀,$f[i][j]$表示字符$i$能否匹配模式串的第$j$个位置,那么有$v[i+1][j+1]=v[i][j]\ and\ f[s[i+1]][j+1]$。 显然$j$这一维可以用bitset加 阅读全文
摘要:
折半爆搜,首先爆搜出所有长度不超过$4$的串。 对于每个询问,首先暴力枚举所有长度不超过$4$的串,以及前$4$位相同时后面的串。 然后枚举前$4$位,以及后面的串长,那么后面的hash值唯一,可以双指针求出。 时间复杂度$O(26^4(\log(26^4)+k))$。 阅读全文
摘要:
A. Bracket Expression 直接按题意模拟即可。 时间复杂度$O(n)$。 B. Checkers 暴力搜索所有对战情况,然后模拟。 时间复杂度$O(2^nk)$。 C. Convex and Compact 枚举起点,设$f[i][j][k]$表示当前凸包转到了$i$点,凸包上和内 阅读全文