10 2016 档案

摘要:\[\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_{ 阅读全文
posted @ 2016-10-30 00:35 Claris 阅读(1265) 评论(0) 推荐(0)
摘要:A. Nanoassembly 首先用叉积判断是否在指定向量右侧,然后解出法线与给定直线的交点,再关于交点对称即可。 B. Playoff 建树根据dfs括号序列判断是否成祖孙关系即可。 C. Inequalities 差分约束系统,下界直接作为初始值,然后判断是否出现正环或者超过上限,需要SLF优 阅读全文
posted @ 2016-10-29 23:35 Claris 阅读(519) 评论(0) 推荐(0)
摘要:A. Toda 2 按题意模拟即可。 B. Minimum and Maximum 首先将1和2,3和4,5和6,...两两比较,得到较大值和较小值,再在这$\lceil\frac{n}{2}\rceil$对中大的比大的,小的比小的即可。 C. Bulmart 首先BFS求出任意两点间的最短路,然后 阅读全文
posted @ 2016-10-28 21:52 Claris 阅读(995) 评论(0) 推荐(0)
摘要:首先不难列出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$的 阅读全文
posted @ 2016-10-28 01:43 Claris 阅读(1417) 评论(0) 推荐(1)
摘要:设$D(A)\leq D(B)$,从小到大枚举$D(A)$,双指针从大到小枚举$D(B)$。 那么对于权值不超过$D(A)$的边,可以忽略。 对于权值介于$(D(A),D(B)]$之间的边,需要满足那两个点不能都在集合$A$。 对于权值大于$D(B)$的边,需要满足那两个点不在同一个集合。 所以建图 阅读全文
posted @ 2016-10-26 09:17 Claris 阅读(509) 评论(0) 推荐(0)
摘要:将边按权值$A$从小到大排序,从小到大枚举$\max(A)$,然后双指针从大到小枚举$\max(B)$。 按权值$B$用大根堆维护所有已经加入的边,每次$\max(B)$减少时,不断取出权值$B$最大的边看看是否需要删除即可。 那么只需要检验这个图是否只有一个强连通分量。 考虑使用Kosaraju算 阅读全文
posted @ 2016-10-26 00:22 Claris 阅读(920) 评论(1) 推荐(0)
摘要:考虑KMP,设$f[i][j][S]$表示还剩最低$i$位没有确定,目前KMP匹配到了$j$这个位置,前缀匹配情况是$S$,最终会匹配到哪里,中途匹配成功几次。 其中$S[i]$是一个pair<int,long long>,表示对于前面已经确定的高位,如果从$i$开始匹配,那么最终会匹配到哪里,中途 阅读全文
posted @ 2016-10-24 16:49 Claris 阅读(355) 评论(0) 推荐(0)
摘要:每种状态最多只有三种后继状态:中间往左跳,中间往右跳,两边往中间跳。 如果把它们分别看成左儿子、右儿子、父亲的话,那么会得到一些二叉树。 取出起始状态和终止状态往上跳$k$步的所有状态,其他状态我们只关心它们到关键状态的距离。 于是设$dp[i][j][k]$表示从起始状态跳了$i$步,目前位于状态 阅读全文
posted @ 2016-10-24 09:11 Claris 阅读(456) 评论(0) 推荐(0)
摘要:A. My Friend of Misery 计算出答案的上下界即可。 时间复杂度$O(n)$。 B. Brother Louie 纵坐标根据深度即可计算,比较麻烦的是横坐标。 设最左边的叶子的横坐标为$t$,那么每个点的横坐标都能表示为$t+A_ir+B_ih$,根据$x_{root}=0$,可以 阅读全文
posted @ 2016-10-22 21:13 Claris 阅读(1270) 评论(0) 推荐(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)\\ 阅读全文
posted @ 2016-10-22 01:58 Claris 阅读(276) 评论(0) 推荐(0)
摘要:设 \[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 阅读全文
posted @ 2016-10-22 00:59 Claris 阅读(892) 评论(2) 推荐(0)
摘要:菜鸡队训练实录。 现场赛记录:[名称:奖项/排名] 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 阅读全文
posted @ 2016-10-21 18:17 Claris 阅读(7178) 评论(4) 推荐(7)
摘要: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加 阅读全文
posted @ 2016-10-21 18:10 Claris 阅读(498) 评论(0) 推荐(1)
摘要:折半爆搜,首先爆搜出所有长度不超过$4$的串。 对于每个询问,首先暴力枚举所有长度不超过$4$的串,以及前$4$位相同时后面的串。 然后枚举前$4$位,以及后面的串长,那么后面的hash值唯一,可以双指针求出。 时间复杂度$O(26^4(\log(26^4)+k))$。 阅读全文
posted @ 2016-10-11 01:42 Claris 阅读(281) 评论(0) 推荐(0)
摘要:A. Bracket Expression 直接按题意模拟即可。 时间复杂度$O(n)$。 B. Checkers 暴力搜索所有对战情况,然后模拟。 时间复杂度$O(2^nk)$。 C. Convex and Compact 枚举起点,设$f[i][j][k]$表示当前凸包转到了$i$点,凸包上和内 阅读全文
posted @ 2016-10-10 01:25 Claris 阅读(723) 评论(1) 推荐(0)
摘要:A. Automaton 后缀自动机可以得到$O(2n+1)$个状态,但是后缀自动机会拒绝接收所有不是$S$的子串的串,所以在建立后缀自动机的时候不复制节点即可得到$n+1$个状态的DFA。 B. Beinz 用Lucas定理计算组合数即可,时间复杂度$O(p+t\log n)$。 C. Cutti 阅读全文
posted @ 2016-10-08 19:19 Claris 阅读(296) 评论(0) 推荐(0)
摘要:一条边能连上当且仅当它没有经过任何点,并且两边的点都是偶数个。 枚举原点,通过极角排序求出哪些边是合法的,然后区间DP即可。 时间复杂度$O(nm\log m+n^3)$。 阅读全文
posted @ 2016-10-08 19:02 Claris 阅读(191) 评论(0) 推荐(0)
摘要:如果存在$k$使得$i<j<k$,且$a[k]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中。 设$b[i]=\min(a[i..n])$,如果$b[j]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中。 设$c[i]$表示最大的$j$,满足$b[j]<i$,则$i$要向位置在$[ 阅读全文
posted @ 2016-10-07 02:28 Claris 阅读(604) 评论(0) 推荐(0)
摘要:将所有数分解质因数,那么第一问就是求指数的最大值,第二问就是$2^{指数最大的质数个数}-1$。 首先将$10^6$以内的质因数全部找到,那么剩下部分的因子$>10^6$,且只有3种情况: 1.大质数 2.大质数的平方 3.两个大质数的乘积 对于1可以用MillerRabin算法判定,对于2可以尝试 阅读全文
posted @ 2016-10-06 02:44 Claris 阅读(322) 评论(0) 推荐(0)
摘要:A. As Easy As Possible 每个点往右贪心找最近的点,可以得到一棵树,然后倍增查询即可。 时间复杂度$O((n+m)\log n)$。 B. Be Friends 从高位到低位依次考虑,对于每一位,按这一位将数字分成两个集合,显然这两个集合要优先连边,那么只需要找到横跨这两个集合的 阅读全文
posted @ 2016-10-06 00:21 Claris 阅读(472) 评论(0) 推荐(0)
摘要:A. RPG 首先计算出每个技能对于每个属性值的可行区间,若区间为空则不合法。 枚举两个技能,以及每个属性值,根据区间的关系可以得到哪个必须要在另一个之前学,连边看看是否有环即可。 时间复杂度$O(n^2m)$。 B. Integer in integer 按KMP的next数组进行数位DP即可,时 阅读全文
posted @ 2016-10-05 02:08 Claris 阅读(263) 评论(0) 推荐(0)
摘要:A. Freestyle 如果逆序对为$0$,那么先手必败。 因为每次只能翻转长度为$4k+2$和$4k+3$的区间,所以每次操作之后逆序对的奇偶性一定会发生改变。 因此如果逆序对个数为偶数,则先手必败。 B. Checkout lines 从后往前贪心构造。 C. Heli-ski 如果$n$比较 阅读全文
posted @ 2016-10-03 00:43 Claris 阅读(283) 评论(0) 推荐(0)