摘要:
###Analysis 显然用线段树来维护。考虑快速求出左右端点分居左右区间的方案数。 首先按位或和是满足单调性的,按位或的数越多,和越大,那么从左到右枚举右端点,左端点的可行范围一定是从左区间的左端点到左区间的某个位置,且这个位置是递增的。 那么我们就有了单次pushup复杂度为O(区间长度)的做 阅读全文
posted @ 2022-05-05 18:42
glq_C
阅读(64)
评论(0)
推荐(0)
摘要:
###Analysis 不难想到设f[p][0/1/2]表示走到标号为p的格子,目前是车/马/象的最短时间。那么转移时,需要知道从一个格子的某个状态走向另一个格子的某个状态的最短时间。 即f[p][q]=min f[p-1][y]+d[p-1,y][p,q] 那么将p,q可以压成一个状态,将同一个格 阅读全文
posted @ 2022-05-05 14:36
glq_C
阅读(75)
评论(0)
推荐(0)
摘要:
###Analysis 首先想到对每个数计算有多少种子序列使得最终集合包含这个数,用方案数乘上这个数再累加求和即可。 所以设f[i][j]表示前i个位置,目前有j个小于等于a[p]的数的方案数, i<p f[0][0]=1; (1) a[i]=='-' f[i][j]=f[i-1][j]+f[i-1 阅读全文
posted @ 2022-05-05 10:44
glq_C
阅读(34)
评论(0)
推荐(0)
摘要:
好坑的一道题。。。 ###Solution 首先很容易联想到完全背包计算方案数,考虑如何维护严格大于的限制。 把限制看作一条有向边,题目保证每个点入度,出度均不超过1,则最终的图一定是若干个链或环。若存在环一定无解。 那么对于每条链分别考虑,每条链中最小的点最少选0个,第二小的最少选1个,···第i 阅读全文
posted @ 2022-05-05 08:25
glq_C
阅读(44)
评论(0)
推荐(0)

浙公网安备 33010602011771号