随笔分类 - 费用流
摘要:这场好难 $dls$下手也太狠了 A 好奇怪的题 弃了 B 将每个点认为是边和列之间的边,容易发现题意即为求最小生成树 因为边权不会太大,桶排序后$kruskal$即可 #include<bits/stdc++.h> #define inf 2139062143 #define ll long lo
阅读全文
摘要:T1 1e5只龙的故事 题目大意: 一棵树 q次询问 每次询问一条路径上的第$k$小的点的权值(不去重),然后把整个路径上所有点的权值都改成这个值 思路: 好暴力啊 使用树剖线段树暴力维护权值一样的区间 查询的时候开个数组记录所有满足条件的区间 排序后直接查即可 1 #include<iostrea
阅读全文
摘要:bzoj 1934 善意的投票 题目大意: 每个人可以选择睡不睡午觉 给出他们原本的意愿 以及m对朋友表示他们之间应当选择相同 求好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数 思路: 每个意愿不同的人分别连向源和汇 对于一对朋友之间连边 这样最小割即可 1 #include<ios
阅读全文
摘要:题目大意: 求若干个<=n的数 两两互质 使和最大 求这个最大的和 思路: 显然,得到两个结论 1 最终的所有数都只能分解为两个质因数 2 这两个质因数 一个<根号n 一个>根号n 于是可以建立二分图,按照数值是否大于根号n分为两个集合 把每个点不大于n的最大次幂加入答案 对于每两个所属集合不同的点
阅读全文
摘要:T1 方案统计 题目大意: 给出一棵n个节点的无根树,其中m个节点是特殊节点,求对于任意0<=i<=m,包含i个特殊节点的联通块个数 思路: 树形dp dp i j表示以i为根的子树 包含j个特殊节点的联通块个数 转移就是枚举该节点任意两个子树 dp i j+k += dp to[i] j * dp
阅读全文
摘要:补一发费用流的代码 %%%棒神 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cstdlib> 5 #include<cmath> 6 #include<algorithm> 7 #include<que
阅读全文
摘要:题目大意: 给定n个不同颜色的球,每个球都有一个分数,同时有m个瓶子,每个瓶子都有固定的容量 必须把球放到瓶子里面 计算最多能放多少个球到这些瓶子里 思路: 开始想的是费用流 超级源向每个球连一条 容量为1,费用为球的分数的边 每个瓶子和它可以装下的球连一条 容量为1,费用为0的边 每个瓶子和汇点连
阅读全文

浙公网安备 33010602011771号