题意 有一个长为 \(N\) 的序列 \(A = [1, 2, 3, \dots, N]\) ,求所有长度 \(\le K\) 的子串权值积的和,对于 \(M\) 取模. \(N \le 10^{18}, K \le \min(600, n), M \le 10^{18}\) 题解 一道还有些意思的组合数学题 qwq 一开始觉得这不是 \(K​\) 次多项式么,直接插值QAQ 发现模数不给,逆元可能都没有,太不友好啦. 令 \(ans_k\) 为长度为 \(k\) 的子串的贡献和.其实我们就是求…
E. Product Sum time limit per test: 1 second memory limit per test: 256 megabytes input:standard input output:standard output Blake is the boss of Kris, however, this doesn't spoil their friendship. They often gather at the bar to talk about intrigui…
E. Product Sum 题目连接: http://www.codeforces.com/contest/631/problem/E Description Blake is the boss of Kris, however, this doesn't spoil their friendship. They often gather at the bar to talk about intriguing problems about maximising some values. Thi…
CS Academy Distinct Neighbours(经典dp) 题意: 求相邻无相同数字的合法的排列数 题解: 题解 先将相同的数字分为一类,假设共有n组 定义\(dp[i][j]\)表示前i组数字恰好有j对相邻数字相同的方案数,那么最后答案就是dp[n][0] 已经考虑完了前\(i\)组数,现在考虑第\(i+\)组数,如何放置 首先可以枚举放\(k\)个位置,有\(C(cnt[i+1]-1,k-1)\)种放法,然后将这k个位置分成两类 一类放在相同的数字中间 放了\(L\)个位置,有…
E. Product Sum   Blake is the boss of Kris, however, this doesn't spoil their friendship. They often gather at the bar to talk about intriguing problems about maximising some values. This time the problem is really special. You are given an array a o…
题意 给你一个长为 \(n\) 的环,你可以把它断成任意 \(k\) 段 \((1 < k \le n)\) ,使得每一段的 \(\gcd\) 都 \(>1\) . 问总共有多少种方案,对于 \(10^9 + 7\) 取模. \(n \le 10^5, 2 \le a_i \le 10^9\) . 题解 首先我们考虑序列上怎么做. 我们令 \(dp_i\) 为到 \(i\) 这个点的方案数, \(pre_i\) 为 \(i\) 向前延伸最长的那个点满足 \((\displaystyle \gc…
我们先把问题分成两部分, 一部分是把元素往前移, 另一部分是把元素往后移.对于一个 i 后的一个位置, 我们考虑前面哪个移到这里来最优. 我们设最优值为val,   val = max(a[ j ] * (i - j) - (sum[ i ] - sum[ j ]) 我们能发现这个能转换成斜率优化的形式如果 j 比 k 更优且 j > k 我们能得到, ((j * a[ j ] - sum[ j ])  - (k * a[ k ] - sum[ k ]))  < i *  (a[ j ] -…
开学啦,没啥时间写博客..过几天就能又停课啦qwq 做点中等 \(dp\) 题来找找 noip 的感觉 233 题意 原题戳这里. 给你一个 \(n \times m\) 的矩阵 \(A\) ,一开始全是 \(0\) . 然后你可以对这个矩阵进行 \(k\) 次操作: 每次选择一个宫格 \((i, j)\) ,将第 \(i\) 行和第 \(j\) 列的状态翻转.(注意 \((i, j)\) 这个点的状态翻转两次然后不会改变) 问最后使得 \(A\) 中恰好有 \(S\) 个宫格被染黑的方案数.…
题目链接  Count Arrays 题意  给定$n$和$m$个区间.若一个长度为$n$的$01$序列满足对于每一个给定的区间中至少有一个位置是$0$, 那么这个$01$序列满足条件.求有多少满足条件的$01$序列. 设$f[i]$为考虑到第$i$位的时候,有多少满足条件的$01$序列. 则转移方程为$f[i] = ∑f[j]  (j < i)$,意义为当$f[j]$转移给了$f[i]$时,相当于贡献了$[j+1,i-1]$这段区间都为$1$的方案数. 于是按照题目给定的区间预处理出每个数的转…
题意: 分析: 考虑如何求方案数 dp[i][j]表示i个数字的和为j的方案数,这是个经典问题,转移有两种,一个是填一个数字1,一个是整体加1 然后这个问题并不是求方案数,而是求对应的权值和 我们很容易想到dp[i][j]维护对应的m个下降幂Σx^i,最后再用斯特林数还原成m次幂 但这样时间复杂度是O(nmk)的,无法接受 题解给出了一个很妙的想法,我们去计算每个数字对答案的贡献,我们只关心这个数字出现的次数,不妨设我们现在考虑数字x x出现总次数={x恰好出现一次的方案数}*1+{x恰好出现两…