摘要:
这个题感觉很神呀。将 FFT 和 Manacher 有机结合在了一起。首先我们不管那个 “不能连续” 的条件,那么我们就可以求出有多少对字母关于某一条直线对称,然后记 $T_i$ 为关于直线 $i$ 对称的字母对的数量,那么答案(暂记为 $Ans$)就会是:$$Ans = \sum 2^{T_i}-... 阅读全文
摘要:
首先我们不能一位一位的考虑,为什么呢?你想想,你如果一位一位地考虑的话,那么最后就只有 $n$ 个数字,然而他给了你 $2^n$ 个数字,怎么看都不对劲呀。(我是因为这样子弄没过样例才明白的)所以我们还是要想想其他的方法。我们是要算步数的期望,然而步数是一个离散的整数,所以我们可以把问题转化一下:$... 阅读全文
摘要:
这个题好神呀。。Orz taorunz有一个结论,这个结论感觉很优美:$$ans = \prod_{i=1}^{n}\varphi(i)$$至于为什么呢,大概是这样子的:对于每个数字 $x$,第 $x$ 行有 $x - \varphi(x)$ 个数字不为 $1$,则说明这一行要被消 $x - \va... 阅读全文
摘要:
这个题感觉比较简单,但却比较容易想残。。我不会用树状数组求这个原排列,于是我只好用线段树。。。毕竟 Gromah 果弱马。我们可以直接依次求出原排列的元素,每次找到最小并且最靠右的那个元素,假设这是第 $i$ 次找的,那么这就是原排列的第 $i$ 项,然后我们就把这个元素删去(变成很大的数),再把这... 阅读全文
摘要:
首先,Alice 会选择一个长度为$\lfloor\frac{n+1}{2}\rfloor$ 的区间,我们把这个长度记为 $len$。有这么一个结论:令 $F_i$ 为覆盖 $i$ 点的所有长度为 $len$ 的区间的元素和的最小值,那么答案就是 $F_i$ 的最大值。因为 Bob 可以控制 Ali... 阅读全文
摘要:
这个题感觉很厉害的样子。。首先我们注意到一点:每次加的 $d$ 都是非负的。那么就说明一个数只可能从负数变成非负数并且只会变一次。所以我们就可以暴力地去改变一个数的正负情况。然后我们就可以用树链剖分,维护一下区间的最大负数和负数的个数就可以了。时间复杂度 $O(n\log^2 n)$,空间复杂度 $... 阅读全文
摘要:
感觉也是一个小清新题。。我们考虑设立状态 $Dp[i][s]$ 表示考虑了前 $i$ 个商店后,购买状态为 $s$ 的最小花费。转移的话就枚举每个商店 $i$,首先令:$$Dp[i][s] = Dp[i - 1][s] + D[i]$$这个过程表示到达这个商店。然后枚举每个状态 $s$,然后枚举每个... 阅读全文
摘要:
这个题感觉比较小清新。。。我们记录每个数出现的次数 $T_i$。首先依次枚举每个数字,令 $ans = ans + T_i \times (T_i - 1)$,然后枚举这个数的倍数,令 $ans = ans + T_i \times T_{ki}$。就做完啦~~令 $M$ 为其中最大的数字,时间复杂... 阅读全文
摘要:
算法零$n,m\le100,q\le10$的话,直接给网格中的每一个格点都建一个点,然后该怎么最短路就怎么最短路,该怎么并查集+BFS就怎么并查集+BFS。复杂度$O(qnm)$,可以拿下前30分。算法一$n\le10^5,m=1,q\le10^5$的话,我们可以直接预处理出$(1,1)-(1,i)... 阅读全文
摘要:
这个题是我出的 sb 题。首先,我们可以得到:$$A_i = \sum_{j=i}^{n}{j\choose i}(-1)^{i+j}B_j$$我们先假设是对的,然后我们把这个关系带进来,有:$$B_i = \sum_{j=i}^{n}{j\choose i}A_j = \sum_{j=1}^{n}... 阅读全文