三月来百草开 盈香满袖万物苏

三月来百草开 盈香满袖万物苏
虫鸣和着欢笑 心事舒
三月来暖阳复 相携去 踏青处
陌上花开满路 香入土
三月来有归人 马踏浅草声催促
春有期归有日 今归途
三月来生情愫 春刚复 情入骨
借缕东风互诉 相爱慕
\(~~~~~~~~~~~~\) -------《春三月》司南

ABC 267

关于开始比赛30min后才想起自己报了场ABC这档事

A

\(~~~~\) 对每个字符串打表输出。

B

\(~~~~\) 把每行的木瓶存下来。判完 1 过后直接枚举三行看是否满足条件即可。

C

\(~~~~\)\(A\) 序列选出连续的长为 \(m\) 的序列 \(B\) ,使 \(\sum_{i=1}^m i\times B_i\) 的值最大。
\(~~~~\) \(1\leq n,m\leq 2\times 10^5\).

\(~~~~\) 算出选择 \([1,m]\) 的答案后可以 \(O(1)\) 更新下一段的答案。每次更新取最大值即可。

D

\(~~~~\)\(A\) 序列选出可以不连续的长为 \(m\) 的序列 \(B\) ,使 \(\sum_{i=1}^m i\times B_i\) 的值最大。
\(~~~~\) \(1\leq n,m\leq 2000\)

\(~~~~\) 不看数据范围见祖宗!

\(~~~~\) 一个很 Naive 的 DP,\(dp_{i,j}\) 表示前 \(i\) 个数,已经选了 \(j\) 个。然后 \(O(1)\) 转移。

\(~~~~\) 没看数据范围前试图找性质数据结构优化。

E

\(~~~~\) \(n\) 个点 \(m\) 条边的无向图,每次删点的代价为其所有相邻未删除点的权值和。定义全过程的代价为单次删点代价的最大值。求全过程代价最小值。
\(~~~~\) \(1\leq n,m\leq 2\times 10^5\)

\(~~~~\) 显然每次删除当前单点删除代价最小的那个,因为不删这个代价必然增大,删除这个还有可能降低后续代价。所以拿一个堆维护即可。

F

\(~~~~\) 在一棵树上求距离点 \(x\) 恰好为 \(k\) 的任意一个点,没有输出 \(-1\)

\(~~~~\) 先找出直径。对于每个点先跳到离它最近的直径上的点。然后根据剩下的距离直接在直径上跳即可。由于直径的性质(树上最长路径),显然不可能会有在直径上继续往非直径走的情况。

G

\(~~~~\) 暂弃。

EX

\(~~~~\) 求从数列 \(\{a_i\}\) 中选择偶数个使得其和恰好为 \(m\) 的方案数 \(\bmod 998244353\)
\(~~~~\) \(1\leq n\leq 10^5,1\leq a_i\leq 10,1\leq m\leq 10^6\)

\(~~~~\) 一眼生成函数然后不会。然后一眼题解发现自己是shaber.

\(~~~~\) 考虑这么小的 \(m\) 必然生成函数,没有偶数的限制那就是生成函数板板,可惜它不是。

\(~~~~\) 所以我们定义:选择 奇数/偶数 个数使得和为 \(a\) 的方案数为 \(f_{a,0/1}\)。定义出某个序列上的生成函数 \(F_{0/1}(x)\sum_{i=0}^{+\infty} f_{a,0/1} x^a\) 。那么合并两个序列 \(F\)\(G\)\(H\) 的方法为:

\(~~~~\) \(H_0(x)=F_0(x)\times G_0(x)+F_1(x)\times G_1(x)\)
\(~~~~\) \(H_1(x)=F_1(x)\times G_0(x)+F_0(x)\times G_1(x)\)

\(~~~~\) 所以我们把每个数的生成函数写出来,然后用类似快速幂的方法卷进总序列的多项式里。最后答案就是 \([x^m]\)

\(~~~~\) 可恶,生成函数还是tcl

posted @ 2022-09-04 17:17  Azazеl  阅读(146)  评论(0编辑  收藏  举报