摘要: 飞行员配对方案问题 "题目链接" 。二分图匹配模板。 cpp include include include include using namespace std; const int N = 1570, M = 18000; int K, n, res = 0, match[N]; int he 阅读全文
posted @ 2020-02-28 22:29 DMoRanSky 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 题目看的有点晕(语文差) 总体来说就是让每头牛找个谷仓,不能超过容量,最小化每头牛在的谷仓在自己心目中排名的极差。 显然这个最优性问题不好做,但是转换为判定性问题这就是一个标准的二分图多重匹配(即一头牛匹配一个谷仓,一头牛只能匹配一个,一个谷仓接受的牛有上限),所以二分这 阅读全文
posted @ 2020-02-28 22:28 DMoRanSky 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 预处理每个列、行连续块。 每个每个列行只能在一个位置匹配,否则冲突。 符合二分图性质,跑匈牙利即可。 点数最坏情况 $N M$ (墙空地相间分布),边数最坏情况 $N M$ (每个点最多会加一条边),所以复杂度 $O(N ^ 2M ^ 2)$ 跑得动 阅读全文
posted @ 2020-02-28 22:26 DMoRanSky 阅读(178) 评论(0) 推荐(1) 编辑
摘要: 大型补档计划 "题目链接" 看到分成两组,想到二分图判定 + 染色。 二分图的特点是两个有矛盾的点连一条边,考虑在这道题中,如果 $a, b$ 中有一个人不认识对方(或者两个人互不认识),就不可能分在一组,可以在 $(a, b)$ 连一条无向边。 但是由于图不连通,每个联通块染色跑出两种颜色的数量 阅读全文
posted @ 2020-02-28 22:24 DMoRanSky 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 根据题意,显然只有新郎这边可能存在矛盾,考虑这边怎么放即可,新娘那边的放法与这边正好相反且一一对应。 显然对于两个约束条件是一对矛盾,开始我以为可以用并查集,后来发现输出方案的时候,如果两者都可以的话不会选了只能乱选,有可能会限制死某些变量,需要指数级别 $dfs$ 搞, 阅读全文
posted @ 2020-02-28 22:23 DMoRanSky 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 神仙题。考虑转为图论模型。 若以 $2 ^ k$ 个点,相互转化,很容易看出要求一个哈密尔顿环,显然对于 $1000$ 规模的数据求不出来。 对于图论中环的算法,并且能满足数据规模的算法只有欧拉回路了,考虑点边换一下。 若以 $2 ^{k 1}$ 为点,可以相互平移一个距 阅读全文
posted @ 2020-02-28 22:20 DMoRanSky 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 只有割点是必行点。 在任意一个点双中,都有分叉没有点交集的两条路径。 所以 v DCC 缩点。 但是他问的是路径走到另一条路径的必行点。我蒙蔽了,发现自己对无向图双联通分量理解不够。因为一条边必然属于且只属于一个点双联通分量,为什么呢?因为就选这条边的两个点就构成了一个点 阅读全文
posted @ 2020-02-28 22:18 DMoRanSky 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 这题是求必须边,而不是不可行边,因为不可行边 = 必须边 + 死掉了的边(貌似lyd第三版书上还是说的不可行边)先跑最大流。 在跑完以后的残余网络上,对于一条当前匹配的边 $(u, v)$,对应流量为 $1$,只有他们有可能是必须边。 考虑断开这条边,能否找到增广路,如果 阅读全文
posted @ 2020-02-28 22:16 DMoRanSky 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 设 $f[i][j]$ 表示二进制下,数字有 $i$ 位, $0$ 的个数 $1$ 的个数 $=$ $j$ 的方案数 $f[0][0] = 1;$ 填一个 $0$ $f[i + 1][j + 1] += f[i][j]$ 填一个 $1$ $f[i + 1][j 1] += 阅读全文
posted @ 2020-02-28 22:13 DMoRanSky 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 把状态实质相同的划分为一类... 发现花色、具体牌值的多少均不影响方案,考虑等效转化题目。 设 $f[A][B][C][D][k]$ A 个 1 张相同,B 个 2 张相同,C 个 3张相同,D个 4张相同的牌,上一个放的牌现在有 $k$ 张相同牌值的牌,排成的方案 状态 阅读全文
posted @ 2020-02-28 22:12 DMoRanSky 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 大型补档补了一年 "题目链接" 考虑枚举月之数的数列和,然后展开dp预处理 设当前模数为 $P$ $f[i][j][k]$ 表示一共有 i 位数字,数位和为 j,数值和 % P 的值为 K $f[1][i][i \% P]++$ 初始化 ($0 include include using names 阅读全文
posted @ 2020-02-28 22:11 DMoRanSky 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 就是把序列分成无数段,每段长度 $ = K$,然后 $[l, r]$ 这段的花费是 $S[r] S[l 1] (r l + 1) a[l]$ (把所有数减成 $a[l]$) 很容易列出状态转移方程: 设 $f[i]$ 为前 i 个分完段的最小花费 $f[i] = f[j] 阅读全文
posted @ 2020-02-28 22:09 DMoRanSky 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" $f[i][j]$ 表示前 $i$ 天,手里有 $j$ 个股票挣得最多钱 买股票。枚举 $u include include using namespace std; const int N = 2005; int T, maxP, W, AP[N], BP[N], AS 阅读全文
posted @ 2020-02-28 22:06 DMoRanSky 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 若 $K = 1$,显然,$B[i]$ 取 $A$ 序列的中位数时最优。 考虑扩展,我们只需要把 $A$ 分成 $K$ 段,每段内, $B$ 最优的取值即这一段的中位数 设 $g(l, r)$ 为 $[l, r]$ 这一段 A 数组序列的中位数 设 $f[i][j]$ 为 阅读全文
posted @ 2020-02-28 22:05 DMoRanSky 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 考虑模拟这个过程。 $f[i][0 / 1]$ 表示从第 $i$ 个围栏的 左/右端点开始往下走,走到原点的最小花费。 转移很容易想到,就是考虑找到一个往下走第一个碰到的围栏 $j (j include using namespace std; const int N = 阅读全文
posted @ 2020-02-28 22:00 DMoRanSky 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 大型补档计划 "题目链接" 如果整体来做,发现既有加法,也有整体异或,这样不容易搞。 考虑异或,各个位置互不干扰,按位考虑一下。 枚举每一位 $k$ 发现如果设 $f[u]$ 为这一位的期望结果还是不好做。 由于 每个位置只有 0 或者 1 两种操作,不妨设 $f[u]$ 为 $u n$ 这一位路径 阅读全文
posted @ 2020-02-28 21:51 DMoRanSky 阅读(156) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 大型补档计划 $f[i][j]$ 表示第 $i$ 个国家,获得 $j$ 个国家支持,用的最少花费 $f[i][0] = 0$ $f[i][sz[i]] = w[i]$ 对于每条边 $(u, v)$ 枚举 $u$ 的第二维 $j$,$v$ 的第二维 $k$ $(k include inc 阅读全文
posted @ 2020-02-28 21:44 DMoRanSky 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 由于木块可以由一些木块的消除,使两边相同颜色的合并 所以我们设定一个归并方式,即每个区间记录一下右边的延展性。 (等于左边找右边) 设 $f[i][j][k]$ 为$[i, j]$ 区间,右侧有 $k$ 个颜色 $= a[j]$ 的。 考虑两种转移方式。 第一种操作:直接搞掉右边的。 设 $i in 阅读全文
posted @ 2020-02-28 21:40 DMoRanSky 阅读(236) 评论(1) 推荐(0) 编辑
摘要: 1 {} 2 [] 3 () $f[d][a][b][c]$ 表示 $[i 2 1, j 2]$ 这段区间 深度为 d $1$ 有 $a$ 个, $2$ 有 $b$ , $3$ 有 $c$ 个 初始状态 $f[1][0][0][1] = 1;$ $f[1][0][1][0] = 1;$ $f[1][ 阅读全文
posted @ 2020-02-28 21:37 DMoRanSky 阅读(135) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 大型补档计划 没想出来去看题解了。。。 关键是发现无论怎样括号嵌套,每个元素始终只有对答案的贡献为 + a[i] 或者 a[i]。 而且第一个必然贡献是 +1, 第二个必然是 1。 所以用背包跑出来每个元素应该加还是减。 然后就是构造了。 观察到每个减操作实际上是把一个位置的贡献取反, 阅读全文
posted @ 2020-02-28 21:24 DMoRanSky 阅读(140) 评论(0) 推荐(1) 编辑