SWJTU_LightMoon Training #16~20 补题

SWJTU_LightMoon Training #16

B dp+贪心

C 计算几何

F 计算几何

G cdq分治或者树状数组 考虑容斥,ans=总对数 - 不满足条件的对数,需要观察发现不满足偏序性质的这一对,一定是在某两个排列里位置是相同的,只有一个和他们的位置不相同,所以可以对每两个排列求一次不满足题意的偏序对的个数,这样相当于某个不满足偏序的对会被计算两次,所以除以2就可以了,两个排列不满足偏序的对的问题可以转化成按第一个序列排序,第二序列的逆序对的个数问题,树状数组维护即可

WQF的代码

H 计算几何

K 暴力 题意是选三类食物组合,每个食物有很多种配方,每个配方有很多个牌子,有些食物不能同时选,然后选中的食物有相同的配方就要用相同的牌子,其实就是set去重,求最后组数

WQF代码

SWJTU_LightMoon Training #17

B 并查集

题意比较难读懂,给你一个图G,n(500)个点m(10000)条边 ,然后又一棵点数为m的树T,根为1,树T的每个点对应为图的每条边
我们有q(50000)个询问 ,对于第i个询问,我们会给你一个点数为ki的集合Si ,让你对于G'=(n个点,特定边集E)内有多少个联通块。
对于我们给定的集合Si ,其所有点,以及所有点的所有祖先,都在这个集合中。 观察到n*m不大,所以可以开m个并查集,每个并查集维护的是这个点到根的并查集结果,这个可以dfs完成,复杂度为((n*m*logn)),对于每次查询,直接把取出所有点的并查集结果做合并就好了,复杂度为(O(n*k*log))
要记住connected components为连通分量的意思。
WQF的代码

D 74 / 311 离散化+dfs

G 1 / 31 极角排序+dp

I 4 / 21 线段树+二分

J 7 / 139 线性规划

K 1 / 14 贪心+背包

SWJTU_LightMoon Training #18

C 差不多暴力就行了

[Megumin的代码] (代码什么的,当然是不存在的呀)

D 极角排序

E 因为A满足两个及以上元素的异或和不为0,那么可以存在一个数等于0,然后暴力求解即可

[Megumin的代码] (代码什么的,当然是不存在的呀)

F 计算几何

G 数据结构+最短路

I 拓扑排序 建边之后跑拓扑排序

WQF的代码

SWJTU_LightMoon Training #19

A dp 18

C 24

F 0

H 网络流 2

I 法一:floyd 记录路径 法二:有向图,枚举点,将点拆开作为起点和终点,然后跑最短路

WQF的代码1 WQF的代码2

K 二分+贪心

[Megumin的代码] (代码什么的,当然是不存在的呀)

SWJTU_LightMoon Training #20

A 数学

B 树剖+二分 9

E 数学 4

F 规律 暴力 92

H DLX爆搜 20

I 计算几何 1

原文地址:https://www.cnblogs.com/ACGO/p/7636209.html