bjfu集训口胡

以后的学校集训队比赛口胡都会放在这里,按照时间顺序排列。
基本都是尝试在较短篇幅内讲清楚题目,细节方面可能会说的不够全面,细节部分可以私下再交流。
网上已经有比较好的题解就直接贴链接,没有的话根据题目视情况补题解。
一般是补一些光头题(没有人过的题)的题解。
2022.4.4
2023.1.10
2023.1.12

2022.4.4

A
链接

B
链接

C
考虑生成函数,显然对于相同权值的物品可以合并,所有权值相同的物品(令权值为i的物品个数是\(a_i\))形成的生成函数是\(\frac{1}{1-a_{i}x}\),所有物品构成的生成函数就是各个权值对应生成函数的卷积。这是一个分母为若干个1次函数乘积,分母为常数的多项式,可以将其展开为若干个形如\(\frac{k}{1-nx}\)的和(这部分不清楚可以参考具体数学生成函数那一章),知道每个多项式具体的形式,然后再求和。中间求每个\(\frac{k}{1-nx}\)中的k可以用高斯消元,复杂度\(O(|{a_{i}}|^{3}+n+|{a_{i}}| \times \log k)\)

D
质数连2,非质数连自己的最小质因子显然最优。
ps:这道题有加强版,在thupc2022,链接

E
先用前缀异或转化成两个数异或不小于k,用异或trie维护。先查询在异或当前位置的值大于k的所有位置中最靠前(相当于pos最大)的一个,然后插入当前位置的值。查询的具体操作是,在异或trie上维护子树pos最大值,可以根据当前位k是0还是1与当前位置的值在这一位是0还是1来判断是往哪边走以及另一边是否要加入贡献。感觉说的比较模糊,具体的可以先去了解异或trie,学懂了异或trie应该就都能明白了。

F
我也不会,不过找到了一篇比较不错的题解,先留个坑,链接

G
链接,悬线法是这一类问题的一个经典处理方法。

H
按照边权排序之后,从小到大枚举边权,连接所有边权相同的边,如果某一次连通块个数恰好变为k,那么解就是当前枚举的边权,否则无解。

I
静态二维数点问题,可以2个log解决(线段树套动态开点线段树),好像也可以cdq啥的,这个不太会。

J
polya定理的题目,链接

2023.1.10

I
令f(i,j)表示强制选第i层的第j个,从第i层到第4层的最小的代价。发现每次是要求一个“某集合去掉若干个元素之后的最小值”,若限制有k个\((i_{1}...i_{k})\),可以把全局最小值拆成k+1个区间最小值 \(([1,i_{1}-1],[i_{1}+1,i_{2}-1].....i_{k}+1)\)。总的限制个数是m,复杂度O(mlogn)

J
两步同时考虑,分层图,f(i,0/1)表示节点走了偶数步/奇数步。w不大所以可以对第二层的点再多记一个状态f(i,1,j)表示i节点上一步的权值是j,点数是n+m级别,边数显然是m级别。

L
没懂,再想想

2023.1.12

J
观察到值域不大,而且一个方案的权值只和“选择的杯子的已有水量”“选择的杯子的剩余容量”两个值有关,考虑依靠这三个值设计背包dp的状态。
令f(i,j,k)表示前i个杯子,选了j个,选择的杯子的已有水量为k的最大的剩余容量,答案就是f(i,j,k)+min(选择的杯子的剩余容量,未选择的杯子的已有水量=总水量-k)

K
可以分析出幸运数字只有1e3级别,枚举非幸运数字个数,在幸运数字中相当于有1e3个数,选出若干个的所有方案的乘积和。O(m^2+n),m是幸运数字个数。

posted @ 2022-04-04 23:04  永无岛  阅读(96)  评论(0编辑  收藏  举报