摘要:
差分约束系统,$spfa$。 首先判断无解,若某个约束的$t$大于区间长度,则一定无解。 否则一定有解,可以得到一系列的不等式: 最终区间和大于等于目前的区间和:$S[R]-S[L-1]≥val$, 每一个位置的值小于等于$1$:$S[R]-S[R-1]≤1$, 每一个约束条件:$S[R]-S[L- 阅读全文
摘要:
直觉,构造。 画了几个样例,发现可以随便构造......先构造根节点的完全图,每个点置为不同的颜色,然后构造儿子节点的完全图...... 阅读全文
摘要:
规律。 手动模拟几组数据,可以发现规律,总的来说就是把$b$和$a$分离,$b$在前面,$a$在后面,且每次将一个$a$往后调整$1$个位置,$b$会多一个,那么从后往前算一遍就可以得到答案了。 阅读全文
摘要:
直觉。 先走$1$走到$n$,然后从$n$走到$2$,然后从$2$走到$n-1$,然后从$n-1$走到$3$。一次花费为$0$,一次花费为$1$。 阅读全文
摘要:
构造。 $bbaabbaabbaa......$输出前$n$个即可,这样不需要用到$c$,而且任意相邻三个都不会是回文。 阅读全文
摘要:
直觉。 一段区间中,肯定是$2$的倍数最多,因为区间长度除以$2$得到的数字最大。但只有$1$个数字的时候需要特判。 阅读全文
摘要:
$dp$。 记$dp[i]$表示$gcd$为$i$的倍数的子序列的方案数。然后倒着推一遍减去倍数的方案数就可以得到想要的答案了。 阅读全文
摘要:
$dp$。 $dp[type][i][j]$表示,前i个字符前缀和为$j$,第$i$个字符放的是$type$类型的能否实现,然后倒推回来就可以了。 阅读全文
摘要:
二分。 首先把字符串处理成一个数组,二分答案,判断一下即可。 阅读全文
摘要:
枚举。 枚举$gcd$,然后计算剩下的那个数能不能分成$k$个递增的数。 阅读全文
摘要:
$dp$。 计算每个点离左边最近和右边最近,取个最小值。 阅读全文
摘要:
枚举。 枚举对角线上放多少个$1$,剩余的贪心放,更新答案。 阅读全文
摘要:
$dp$预处理,暴力。 如果$k > sqrt(n)$,那么答案不会超过$sqrt(n)$,暴力模拟即可。如果$k <= sqrt(n)$,那么可以$dp$预处理打表。 阅读全文
摘要:
$dfs$,线段树。 通过观察可以发现,某位置要能被找到,和他到根这条路上的每个节点的权值存在密切的联系,且是父节点的左儿子还是右儿子也有联系。 可以从根开始$dfs$,边走边更新线段树,如果遍历左儿子,那么将$[1,val-1]$全部加$1$,否则将$[val+1,n]$全部加$1$,回溯的时候减 阅读全文
摘要:
栈。 先处理一下后缀最小值。 对于每一个字符,如果不是后缀最小值,将栈顶小于当前后缀最小值的都弹出,然后压入当前字符。 如果是后缀最小值,将栈顶小于当前后缀最小值的都弹出,再输出该字符。 阅读全文
摘要:
排序。 正的偶数肯定都是可以加进去的,因为加偶数不改变奇偶性。奇数从大到小排序,取个最大的前缀和。 阅读全文
摘要:
质因数分解。 分解一下质因数,如果个数小于$k$个,则无解,否则把多出来的合成一个数。 阅读全文
摘要:
计算几何,直觉。 凭直觉猜的做法,把每条线段的中点连起来,每个点到对应内部线段的距离,取个最小值。 阅读全文
摘要:
二分答案,验证。 二分到一个答案,比他小的时间都需要补充到这个时间,计算所需的量,然后和能提供的量进行比较。 阅读全文
摘要:
矩阵快速幂。 因为任意素数长度都要满足,所以$3$必须满足,$3$一旦满足,其余的肯定满足,也就是说只要考虑字符串末尾两位即可,$dp$一下就可以算方案数了。$n$较大,可以矩阵加速。 阅读全文