yxy小蒟蒻的201111总结

2020.11.11 周三

今天是单身节啊 我不愧是万年寡王 一到单身节rp就++了

B B B题居然过了 笑死我了 我那个假算法 这种组合计数的题我很少做对的 基本是没有

当时我想着肯定做不出来 写了个假算法就玩交互去了

然后交互 主要是读题读错了 本身题目是不难的 二分它倍增的步数

C C C题太有意思了 妙不可言 我还想再开个博客慢慢掰扯掰扯二分图

A

给定长度为 n n n 的序列 a i = 1 n {a}_{i=1}^n ai=1n,每次随机找到相邻两个元素 a i , a i + 1 a_i,a_{i+1} ai,ai+1,将它们合并为 a i − a i + 1 a_i-a_{i+1} aiai+1​。求最后得到的数的期望值。对 1 e 9 + 7 1e9+7 1e9+7 取模

结论 a n s = a 0 − a 1 ans=a_0-a_1 ans=a0a1

K o n j a c q Konjacq Konjacq大佬说了个证明挺有意思的

  1. 显然 当只有三个数的时候 第三个数是没有贡献的

  2. 显然 对于某一个数 无论怎么选 它后面的数不影响它的贡献

那么对于一个位置大于等于 3 3 3一个数 一定存在一个时刻它是第三个数 它所以没有贡献

B

给定整数 n , m , k n,m,k n,m,k

我们称一个 1 1 1 n n n 的排列 p p p 是好的,当且仅当有恰好 m m m i i i 满足 p i = i p_i=i pi=i

请求出所有 1 1 1 n n n 的排列中,字典序第 k k k 小的排列。若不存在,则输出 − 1 -1 1

每一位从小到大枚举可以放哪个数 能放就放

c h e c k check check的时候我是 O ( n ) O(n) O(n) 算的 不知道为什么就过了

我稍微证了一下时间 大概就每次都是枚举每一位的时候 当前的 k k k 都是指数级别的递减

然后远远跑不满 O ( n 3 ) O(n^3) O(n3)

真 跑得飞快

C

给定正整数 n , m n,m n,m

你想构造一个两边均有 n n n 个点(左边的点编号为 1 1 1 n n n,右边的点编号为 n + 1 n+1 n+1 2 n 2n 2n),共有 m m m 条边(允许有重边)的二分图,满足其最大匹配大小不大于 r r r 且不小于 l l l

若与第 i i i 个点相连的边有 d i d_i di 条,则该二分图的价值是所有 p i , d i p_{i,d_i} pi,di 的和。

请求出所有满足条件的二分图中价值的最小值,或判断无解。

这个题太有意思了 首先要知道 Hall定理 (我在这儿学的,Henry_Huang大佬写东西就是好)

题面让我们求 最大匹配在一个区间内的所有方案中 价值最小的方案

这个价值只和每个点的度数有关

其实定了每个点的度数的方案 它可以取到的最大匹配是一个区间 (想想为什么 可以手模一下)

m a x max max 是左右两边度数非 0 0 0 的点少的那一个的数量

m i n min min 不能直接求得 先放一下 继续看

那么判断一个方案是否在 [ L , R ] [L,R] [L,R] 区间内 就是要求这个方案 m a x ≥ L max \ge L maxL m i n ≤ R min \le R minR

由于 H a l l Hall Hall定理推论 V 1 + m i n S ⊂ V 1 ( ∣ N ( S ) ∣ − ∣ S ∣ ) V1+min_{S⊂V1}{(|N(S)|−|S|)} V1+minSV1(N(S)S)

V 1 V1 V1 是左边的点 S S S 是子集 N ( S ) N(S) N(S) 是与 S S S 相邻的右边的点的集合

是不是如果一个方案中有一个二分图中存在一个 S S S 使得 V 1 + ∣ N ( S ) ∣ − ∣ S ∣ ≤ R V1+|N(S)|−|S| \le R V1+N(S)SR 那么这个方案就合法

那么我们可以枚举 S S S N ( S ) N(S) N(S) 并且枚举左边的总度数和右边的总度数 让它们直接连边

预处理左边取 S S S 并指定 S S S 总度数的合法方案中的最小价值 和右边取 N ( S ) N(S) N(S) 并指定 N ( S ) N(S) N(S) 总度数的合法方案中的最小价值

这样的话对 m i n min min m a x max max 的要求都满足了

再把他们加起来就更新答案

D

交互先咕咕了

占坑

posted @ 2022-10-10 20:19  缙云山车神  阅读(21)  评论(0编辑  收藏  举报