
ACM
文章平均质量分 77
Frozensmile
这个作者很懒,什么都没留下…
展开
-
Kick Start 2019 Round D Latest Guests 队列
ProblemThe city of Circleburg has a large circular street withNconsulates along it. The consulates are numbered 1, 2, ...,Nin clockwise order.TodayGguests, numbered 1, 2, ...,Gwill drive a...原创 2019-07-30 17:19:37 · 595 阅读 · 0 评论 -
hdu2426 km算法map数组初始化的一些注意事项
首先讲一下这道题的特殊之处 特殊之处就在于某些样例无法达到我们需要的最大匹配 也就是说匹配数无法达到n(有同学没有房间住)这时候就要输出-1有没有注意 hdu2255 hdu1533 hdu2813 这几道题的样例保证了集合X里的每一个元素都能匹配到Y集合里的元素所以我们在初始化的时候 把每条边都初始化为-inf 如果节点x与节点y有一条边权值为3 再去赋值map[x]原创 2017-08-15 13:41:53 · 429 阅读 · 0 评论 -
hdu1533 Going Home KM算法求最小费用
二分图是这样一种图:所有顶点可以分成两个集:X和Y,其中X和Y中的任意两个在同一个集中的点都不相连,而来自X集的顶点与来自Y集的顶点有连线。当这些连线被赋于一定的权重时,这样的二分图便是带权二分图。KM算法则就是对带权二分图进行操作 使两个集合在最大匹配的情况下 权值的和最大推荐讲解KM算法的博客:http://philoscience.iteye.com/blog/175449原创 2017-08-14 17:41:44 · 315 阅读 · 0 评论 -
hdu 2883 最大流sap算法+离散化
今天学了一点离散化的技巧 果然精妙绝伦啊题意: 烤肉店有N个人来, 每个人对应时间si到达烤肉店 ,ei时离开烤肉店(ei这个时刻是呆在烤肉店的), 每个人点了ni串烤肉 每一串烤肉烤熟需要花费ti的时间,问是否能满足每个顾客的需求.这道题第一眼看上去就是跟hdu3572一样的做法 但是不同之处在于 这道题si和ei的范围开的很大 如果把每一个时间点看作一个点来连接图的话肯原创 2017-07-28 23:15:19 · 447 阅读 · 0 评论 -
poj3228 最大流+拆点+二分
这道题与poj2391方法完全一样 如果不会 可以先看我写的poj2391的题解:http://blog.youkuaiyun.com/frozensmile/article/details/77045408 然后再用这道题练手79ms过#include#include#include#include#include#include#include#include#include原创 2017-08-13 16:45:32 · 361 阅读 · 0 评论 -
poj2112 二分最大流
题目:输入k c m 代表有k台机器 c头牛 每台机器最多服务m头牛k台机器编号为1~k。c头牛编号为k+1~k+c下面是一个(k+c)*(k+c)的矩阵map[i][j]代表从编号为i的实体到编号为j的实体的直接距离问你要让每头牛都被机器服务 这c头牛中 走的最远距离的最小值(就是说这c头牛每头牛都要走向一个机器,最小化走的最远的那头牛所走的距离)思路:二分最远的原创 2017-08-05 22:58:57 · 393 阅读 · 0 评论 -
poj2455 二分最大流裸题
一道二分最大流的裸题问你john要从1号去n号点T次(到了n号点直接瞬间移动回1号点,就是直接把他放回1号点),问在这T次中原创 2017-08-10 12:29:40 · 350 阅读 · 0 评论 -
codefroces 841B Godsend
想法题如果数的和为奇数 那么first直接全部拿走如果数的和为偶数,分两种情况:1.如果每个数都是偶数 那么first无法拿走任何数 second赢 2.如果存在奇数(肯定是偶数个): ①如果某个奇数在第一个位置或者在最后一个位置原创 2017-08-19 11:44:53 · 459 阅读 · 0 评论 -
2017百度之星资格赛1002:度度熊的王国战略(最小割)
很大胆的用了最小割 可能因为数据太水 5000+ms过的也根据这个道题仔细想了想最小割 其实最小割就是把一个连通块分为两部分看代码吧#include#include#include#include#include#include#include#include#include#include#include#include#includetypede原创 2017-08-06 22:14:48 · 563 阅读 · 0 评论 -
poj1330 lca倍增算法模板
上一套基于二分搜索的lca倍增算法模板#include#include#include#include#include#include#include#include#include#include#include#include#includetypedef long long ll;#define exp 1e-8#define up(i,x,原创 2017-09-05 21:46:27 · 694 阅读 · 0 评论 -
Codeforces Round #433 B.Maxim Buys an Apartment
想法题 小明要买房子 买的这个房子要满足至少有一个邻居 如果没人居住(k==0)或者已经住满了(k==n) 那么小明买不到符合条件的房子 最大最小都是0其他情况最小的都为1 这个好理解吧 就是样例解释中的情况下面看最大的可能 1代表有人居住 0代表没人居住首先我们来看 已经有一个人居住了 010 1可以让自己边上的两个房子符合条件同理 如果有两个人居住了 01原创 2017-09-07 11:04:29 · 323 阅读 · 0 评论 -
Codeforces 1187E Tree Painting
传送门题意:给定一棵树,确定一个根,使得所有子树的大小之和最大思路:设u是v的父亲,设val为以u为根的子树大小之和,那么以v为根的子树大小之和为val-siz[v]+(n-siz[v]),当根变成v时,siz[v]大小的子树则消失,但多了一棵以u为根,大小为(n-siz[v])的子树.D题链接:https://blog.youkuaiyun.com/Frozensmile/article/det...原创 2019-07-02 16:47:01 · 679 阅读 · 0 评论 -
hdu3491 最小点割集(无向图求最小点割集通用方法)
无向图最小点割集,确定起点S,终点T。每个点都有自己的点权值vi,求最小点权和的割点集,使得S无法到达T。 解法:将每个点拆分为两个点v和v',之间的权值为vi(单向边),将原图中的每条边赋权值为INF(无穷大),然后使用最大流算法,求从S到T的最大流,即对应了最小割,其中割边集连接的点形成的点集就是最小点割集。这题需要注意的一点是不能在S和T堵住小偷 所以在将S和T拆原创 2017-08-17 15:41:04 · 2613 阅读 · 0 评论 -
最小割-方格取数总结
总结的题型在这里:http://blog.youkuaiyun.com/u013368721/article/details/38312229写的不错的建图方法:http://blog.youkuaiyun.com/xjh_shin/article/details/77658833原创 2017-11-18 23:42:10 · 348 阅读 · 0 评论 -
codeforces 888D.Almost Identity Permutations
一道很简单的数学组合题直接上代码#include#include#include#include#include#include#include#include#include#include#include#include#include#define lson i<<1#define rson i<<1|1#define up(i,x,y) for(i=x;i原创 2017-11-10 13:52:23 · 451 阅读 · 0 评论 -
poj2528 线段树+离散化
不清楚为什么数组开小了是wa而不是re这题其实主要在离散化的操作离散化完成后 其实就是zoj1610染色覆盖一个题意了 希望大家在做这道题之间先把zoj1610做了看了kuangbin的博客知道了离散的特殊之处例子一:1-10 1-4 5-10例子二:1-10 1-4 6-10普通离散化后都变成了[1,4][1,2][3,4]线段2覆盖了[1,2],线段3覆盖了原创 2017-09-30 00:32:00 · 331 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2) A.Fair Game B.Polycarp and Letters C. Bus D.Make a Permutation!
c题掉了... 有时间再把代码补上首先A 很水的题 看看键入的是不是两个数 不是的话no 如果是两个数 但是两个数的个数不同 no 否则符合条件yesint a[105];int main(){ int i,j,k,m,n; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&k); a[k]++; } i原创 2017-09-25 20:59:21 · 604 阅读 · 0 评论 -
FZU 1704 高斯消元
这题其实就是求自由变量的个数n 然后就有2^n种方法注意要用到高精度 一开始不知道错在哪 wa了一天 最后得知是高精度的问题...#include#include#include#include#includetypedef long long ll;#define exp 1e-8#define up(i,x,y) for(i=x;i<=y;i++)#define dow原创 2017-09-16 11:42:52 · 410 阅读 · 0 评论 -
2017百度之星复赛1001 Arithmetic of Bomb
算是想法题吧 写的有点乱#include#include#include#include#include#include#include#include#include#include#include#include#includetypedef long long ll;using namespace std;const int MAXN=1005;原创 2017-08-18 17:04:14 · 406 阅读 · 0 评论 -
MCMF最小费用最大流模板
原文网址:http://www.cnblogs.com/Missa/archive/2013/04/19/3030512.html注:流量和费用两个限制条件在一个网络中每段路径都有“容量”和“费用”两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择路径、分配经过路径的流量,可以达到所用的费用最小的要求。如n辆卡车要运送物品,从A地到B地。由于每条路段都有不同的路费要缴纳,每转载 2017-08-03 21:47:40 · 1617 阅读 · 0 评论 -
hdu3667 最小费用流 拆边题
第一道拆边题 用Bellman-Ford以967ms险过...先说一下大体的题意:输入N M K 分别指城市的个数 M条边 现在需要把K个单位的物品从城市1运往城市N接下来的M行 每一行输入四个数 ui, vi, ai, Ci 代表从城市u到城市v有一条单向路 容量为c 如果在这条路上运送x个单位的物品 需要花费a*x*x的费用 求最小费用 若不能成功将这K个物品运原创 2017-08-03 21:14:26 · 487 阅读 · 0 评论 -
hdu3277 最大流拆点+并查集
与hdu3081非常相似 建议先做3081 然后这题只不过多了拆点 马上就过了#include#include#include#include#include#include#include#include#include#include#include#include#includetypedef long long ll;using namespace原创 2017-07-31 23:31:00 · 417 阅读 · 0 评论 -
hdu3081 Marriage Match II 最大流+二分+并查集
题意:有2*n个人 分别为n个女生和n个男生 现在女生要挑选男生进行配对一起做游戏 可以配对的条件是:1.如果某个男生从来不会跟某个女生吵架 那么这个女生可以选这个男生 2.如果某个男生从来不会跟某个女生的女性朋友吵架 那么这个女生可以选择这个男生(朋友关系可以传递 比如女生a和女生b是朋友 女生b和女生c是朋友 那么a和c也是朋友)每局游戏能进行的条件是 每个女生都能找到原创 2017-07-31 23:19:17 · 332 阅读 · 0 评论 -
hdu 4240 最大流dicnic
复习一下dicnic算法 但是好像这个做法有问题 看注释讲解吧题意:题意一开始没看懂 所以说的详细点输入一个P代表样例个数还有每个样例 第一个数D 就是代表第D个样例...不知道出题者的意图...第二个数是节点的总个数 且节点编号是0~n-1 第三个数是边的个数 第四个数是源点source 第五个数是汇点sink以后的m行当然就是 节点x到节点y的边权值为z这道题这么做好原创 2017-07-30 23:00:39 · 596 阅读 · 0 评论 -
POJ3281 拆点 最大流 EK算法
DiningTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 17948 Accepted: 8013DescriptionCows are such finicky eaters. Each cow has a preference for certain原创 2017-07-05 21:27:40 · 340 阅读 · 0 评论 -
HDU 1698 Just a hook (线段树区间更新)
Just a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 31586 Accepted Submission(s): 15560Problem DescriptionIn the game原创 2017-05-16 23:11:16 · 355 阅读 · 0 评论 -
poj 3468 线段树区间更新
A Simple Problem with IntegersTime Limit: 5000MS Memory Limit: 131072KTotal Submissions: 108802 Accepted: 33885Case Time Limit: 2000MSDescriptionYou have N原创 2017-05-16 23:04:17 · 291 阅读 · 0 评论 -
Educational Codeforces Round 21 D. Array Division
D. Array Divisiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya has an array a consisting of positi原创 2017-05-16 17:34:04 · 426 阅读 · 0 评论 -
HDU 1541 Stars
第一天学这个树状数组 还是看了别人的代码才有思路的...StarsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9616 Accepted Submission(s): 3850Problem原创 2017-05-23 23:47:28 · 329 阅读 · 0 评论 -
最小费用流 Bellman-Ford与Dijkstra 模板
今天刚接触最小费用流 码下两个版本当作模板用吧 spfa的做法明天再整理有负权边的情况只能用Bellman-Ford 没有的话就用Dijkstra 毕竟Dijkstra效率更高首先贴下Bellman-Ford 实现最小费用流的算法 时间复杂度为 O(FEV) F E V 分别代表需要传输的流量 边的条数 节点的个数// Bellman_Ford//Bell原创 2017-08-01 23:56:01 · 1035 阅读 · 1 评论 -
poj3686 KM算法+拆点
这道题真的折磨了我好久。。开始不会km算法 为了这道题去做了一些km算法的题 也算是能理解了KM算法题:https://vjudge.net/contest/178913题意:输入n m 代表有n的订单和m台机器接下来一个n*m的矩阵z z[i][j]代表订单i在机器j上完成需要消耗的时间 而且一台机器一旦操作了一个订单 这个订单就必须在这台机器上完成 而且只有完成了这个原创 2017-08-16 13:37:36 · 404 阅读 · 0 评论 -
hdu3452 最小割
最小割基础题 要想把叶子节点与根节点分开 其实就是把叶子节点跟一个汇点连接起来 边的权值为无穷然后根节点为源点 到汇点跑最大流就行了#include#include#include#include#include#include#include#include#include#include#include#include#includetypedef l原创 2017-08-17 20:27:00 · 404 阅读 · 0 评论 -
poj 1815 最小点割集
最小点割集求解方法:1.有向图:把一个点拆成(i, i+N)2个点,之间容量为1。如果i, j 2个点在原图中联通,则将i+N,j相连,容量为无穷大。然后求最小割,可见被最小割割到的都是容量是1的边,(如果割到一条INF,说明没有最小点割集。)而且那些边必将连着i,i+N,于是i就是被割的点。2.无向图:把一个点拆成(i, i+N)2个点,之间容量为1。如果i, j 2个点在原图中原创 2017-08-17 18:36:56 · 850 阅读 · 0 评论 -
poj2391 二分最大流+拆点
这道题范围开的非常的憋屈人 首先建立一个超级源点 编号是0 一个超级汇点 编号是2*f+1将每个避雨点分成两个点 第一组编号为1~f 对应的第二组为f+1~2*f每次建图 从源点向第一组每个避雨点连边 边的值为现在停留在这个点的牛的数量从第二组每个点向汇点进行连边 边的值为这个点可容纳的牛的数量然后对时间进行二分 如果从避雨点i走到避雨点j的时间小于等于mid那么就从i到j原创 2017-08-10 12:10:15 · 545 阅读 · 0 评论 -
hdu4289 最大流最小割
最小割问题 拆点 每个城市拆成两个点 两点之间边的权值为之前点的权值就行了//拆点 将点的权值变为边的权值#include#include#include#include#include#include#include#include#include#include#include#include#includetypedef long long ll;u原创 2017-08-16 20:48:10 · 349 阅读 · 0 评论 -
hdu3657 奇偶方格取数
从n*m的方格中取数 取走一个数 你的总分数里就加上这个数 若取走一个数之后 出现了两个相邻的格子 那么你的总分数里就要减去2*(x&y) x和y分别为这两个格子中原本放的数 同时规定了k个数必须要取走方格取数的题做法:横纵坐标和为奇数的点为X集合放在左边 为偶数的点为Y集合放在右边 源点与集合X里的点连边 权值为点的权值 集合Y里的点与汇点连边 权值为点的权值然后X集原创 2017-08-16 19:52:10 · 362 阅读 · 0 评论 -
poj 3422 最小费用流 Bellman-Ford 拆点
Kaka's Matrix TravelsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9961 Accepted: 4049DescriptionOn an N × N chessboard with a non-negative number i原创 2017-08-02 17:57:09 · 1420 阅读 · 0 评论 -
最小点权覆盖和最大点权独立集(定义与建模)
原文网址:http://yzmduncan.iteye.com/blog/1149057二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。 二分图最小点权覆盖 从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。转载 2017-08-16 18:14:20 · 1566 阅读 · 0 评论 -
hdu2686 最大费用流
将边的cost取反 转换成求最小费用流的问题 得出结果再取反回来即可具体的建图步骤在代码里有注释 写的很详细了。MatrixTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2606 Accepted S原创 2017-08-02 12:55:06 · 527 阅读 · 0 评论 -
POJ 2299 离散化+树状数组
这段时间没怎么发博客 被动态规划折磨的头疼...今天就把dp放下了 开始上手了几道树状数组的题Ultra-QuickSortTime Limit: 7000MS Memory Limit: 65536KTotal Submissions: 60829 Accepted: 22563Description原创 2017-05-23 23:34:09 · 428 阅读 · 0 评论