【KM】POJ2195/HDU1533-Going home】的更多相关文章

//最近没什么时间quq据说长得帅的人都在切八中,然而长得丑的人只能水水裸题 [题目大意] 给出一张地图及人和房屋的位置,求出每个人回到不同房屋所具有的最小代价和. [思路] 最小权匹配,先O(n^2)求出每个人到任意房屋的距离后取反,就变成了裸的KM.数据范围很小,O(n^4)可以0ms过. [错误点] 1.slack在每次循环中药重新设置为无穷大.2.内循环和外循环的循环变量重名了.3.变量名取太乱了用错了一次. #include<iostream> #include<cstdio&…
这道题拖了好久因为懒,结果1A了,惊讶∑( 口 || [题目大意] 给定一张n个顶点m条边的有权无向图.现要修改各边边权,使得给出n-1条边是这张图的最小生成树,代价为变化量的绝对值.求最小代价之和. [思路] 思路有点神,并不是我这种蒟蒻能够想到的XD 显然由贪心,树边必定变成wi-di,非树边必定变成wi+di (di≥0) 为了满足Mst的性质,考察一条非树边j,它加最小生成树后,必定构成一个环.对于环上的每一条树边i,有wi-di≤wj+dj,即di+dj≥wi-wj.这非常类似于KM的…
http://blog.csdn.net/loy_184548/article/details/51154195    一开始对不同组合得不同分数(mm1,mg2,gg3),想用sap来写,但是保证了最大girl数却没有记录下组数.标准解法应该是KM,自己写一遍了再来改博客.......…
<题目链接> 题目大意: 学校里有n个学生和m个公寓房间,每个学生对一些房间有一些打分,如果分数为正,说明学生喜欢这个房间,若为0,对这个房间保持中立,若为负,则不喜欢这个房间.学生不会住进不喜欢的房间和没有打分的房间.问安排这n个学生来求最大的分数,如果不能够使这些学生全部入住房间,就输出-1,每个房间最多只能住一个学生. 解题分析: 因为需要求带权二分图,所以用KM算法,需要注意的是,边权为负的两点不能进行匹配,并且,最后需要判断是否符合题意,即是否所有学生都有房间. #include &…
题目链接 http://poj.org/problem?id=2195 题意 在一张N * M 的地图上 有 K 个人 和 K 个房子 地图上每个点都是认为可行走的 求 将每个人都分配到不同的房子 求他们的总的最小步数 思路 因为每个点都是可行走的 我们可以直接根据坐标 算出 每个人都不同房子的路径 然后用 KM 算法跑一下就可以了 KM算法 参考 https://blog.csdn.net/thundermrbird/article/details/52231639 https://blog.…
转自:http://blog.csdn.net/shahdza/article/details/7779324 [HDU]2255 奔小康赚大钱 模板题★1533 Going Home 模板题★2426 Interesting Housing Problem KM★3395 Special Fish KM★2282 Chocolate KM★2813 One fihgt one KM★1853 Cyclic Tour 最小费用圈覆盖★★3488 Tour 最小费用圈覆盖★★3435 A new…
[BZOJ4883][Lydsy2017年5月月赛]棋盘上的守卫 Description 在一个n*m的棋盘上要放置若干个守卫.对于n行来说,每行必须恰好放置一个横向守卫:同理对于m列来说,每列 必须恰好放置一个纵向守卫.每个位置放置守卫的代价是不一样的,且每个位置最多只能放置一个守卫,一个守卫 不能同时兼顾行列的防御.请计算控制整个棋盘的最小代价. Input 第一行包含两个正整数n,m(2<=n,m<=100000,n*m<=100000),分别表示棋盘的行数与列数. 接下来n行,每…
[POJ3565]ANTS 题意:平面上有2*n个点,N白N黑.为每个白点找一个黑点与之连边,最后所有边不交叉.求一种方案. 题解:KM算法真是一个神奇的算法,虽然感觉KM能做的题用费用流都能做~ 本题用到的结论:当选出的点对之间的距离之和最小时,一定使所有边都不交叉 这个感觉很容易理解,自己画画图就能看出来,就是难想啊 然后跑最小权值匹配,方法是将边权都变成相反数,然后跑最大权值匹配 不知道为什么以前写的KM算法会TLE,将求temp的过程拿到主函数里就过了 #include <cstdio>…
[BZOJ1937][Shoi2004]Mst 最小生成树 Description Input 第一行为N.M,其中 表示顶点的数目, 表示边的数目.顶点的编号为1.2.3.…….N-1.N.接下来的M行,每行三个整数Ui,Vi,Wi,表示顶点Ui与Vi之间有一条边,其权值为Wi.所有的边在输入中会且仅会出现一次.再接着N-1行,每行两个整数Xi.Yi,表示顶点Xi与Yi之间的边是T的一条边. Output 输出最小权值 Sample Input 6 9 1 2 2 1 3 2 2 3 3 3…
[BZOJ3197][Sdoi2013]assassin Description Input Output Sample Input 4 1 2 2 3 3 4 0 0 1 1 1 0 0 0 Sample Output 1 HINT 题意:给你两棵同构的树,每个节点都有权值0/1,现在想改变第一棵树中部分点的权值,使得两棵树对应的节点权值相同,问最少改变多少节点. 题解:先考虑树hash+树形DP.树hash的方法同独钓寒江雪.设f[x][y]表示第一棵树中的x节点与第二棵树中的y节点对应时,…