自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 HDU 4322 最大费用最大流 2012 Multi-University Training Contest 3

初学网络流,什么都不懂只会套模板的菜鸟啊。比赛时看了这道题就觉得是网络流,由于水平太菜,构图不会。赛后看了题解,决定A掉。            题意:M颗糖分给N个孩纸,每个孩纸有自己喜欢的糖和不喜欢的糖(记1,0),如果得到喜欢的糖则兴奋值加k,得到不喜欢的也加1,如果兴奋值>=b[i],则这个孩纸会灰常高兴,问是否可以让所有孩纸都高兴。           思路:最大费用最大流,我们

2012-08-02 11:00:22 529

原创 hdu 3861 The King’s Problem 强连通+二分匹配

#include#include#include#include#include#define maxn 5005#define maxm 100005#define clr(a,b) memset(a,b,sizeof(a))using namespace std;stacks;vectorvc[maxn];int ca,n,m,bcnt,e,first[maxn],ev

2012-07-23 14:59:08 1209

原创 hdu 3279 I'm Telling the Truth 二分匹配

思路:建图很容易,排名和人的标号连边,倒着匹配就可以输出最大字典序            代码:#include#include#include#define clr(a,b) memset(a,b,sizeof(a))#define maxn 65#define maxm 100005using namespace std;int next[maxn*maxm],ev[m

2012-07-23 14:57:09 958

原创 hdu 3360 National Treasures 二分匹配

题意:给出一个R*C的表,每个格子上标有值,-1表示已经有的保安,其他表示古董的价值,要看守一个古董就必须在1~12各个点上都有保安,求最少要雇的保安。           思路:建图,从图中可以发现古董和保安的位置相差一个奇数,所以我们可以将表格着色,白的为x部,黑的为Y部,古董和保安连一条边,求最小点覆盖。          代码:    #include#include#in

2012-07-23 14:52:37 743

原创 hdu 2444 The Accomodation of Students 二分匹配

思路:模拟分组,如果一个点的分组与上一次的分组矛盾则输出No,否则对两组进行匹配。            代码:#include#include#include#include#define Maxn 205#define clr(a,b) memset(a,b,sizeof(a))using namespace std;int c[Maxn],s[Maxn],kx[Max

2012-07-23 14:44:01 335

原创 hdu 2236 无题II

思路:二分枚举差值,再枚举下限。#include#include#include#include#define maxn 110#define INF 0x3f3f3f3f#define max(a,b) a>b?a:b#define min(a,b) a<b?a:b#define clr(a,b) memset(a,b,sizeof(a))using namespace

2012-07-23 14:40:03 378

原创 poj 3686 The Windy's 二分匹配 KM算法求最小权匹配

题意:有M个工作间,N个玩具订单,求最小的平均完成时间             思路:对M个工作间分成N个点,j的第p个点表示倒数第p次加工,若要在一个工作间上完成k个订单则需要假设我们按顺序在J机器上工件I1,I2,I3..IK个工件,则总共需要花费I1*K+I2*(K- 1)+I3*(K-3)++IK, 所以我们对于X中每个点I,Y中每个点(J,P),连接一条A[I,J]*P权值的边.

2012-07-23 14:37:39 909

原创 poj 2400 Supervisor, Supervisee 二分匹配 最小权完美匹配 KM算法

题意:有n个应聘者应聘n个部门,每个部门的经理对每个人的喜欢程度不一样(记1~N,最喜欢的为1),每个应聘者对每个经理的喜欢程度也不一样(同上)。给出每个经            理对应聘者的喜欢程度和应聘者对经理的喜欢程度,求平均最小偏差(貌似题目给出的两个矩阵是反的,有点不清晰啊)           思路:此题求最小权的完美匹配,cv[i][j]记录i候选人对j经理的喜爱程度,sv[i]

2012-07-23 14:18:41 689

原创 poj 2594 Treasure Exploration 可重复覆盖的二分图最小覆盖路径

题意:给出一个图,有N个点有宝藏,M条单向边,求用最少的机器人去挖宝藏。             思路:注意到You should notice that the roads of two different robots may contain some same point。说明有些点可以重复经过,所以只要考虑路径的两个端点即可,用floyd求传递闭包。     代码:#inc

2012-07-23 13:58:58 346

原创 poj 1904 King's Quest 强连通

题意:国王有n个儿子,王国里有n个漂亮MM,每个王子喜欢mi个MM,国王想给他的儿子找媳妇,给出原先给王子匹配的MM标号,求出每个儿子所有可能结婚的对象。            思路:王子对每个喜欢的MM连一条边,原先给王子匹配的MM连一条反向边,求强连通分量。再连通分量中的MM如果没有嫁给在同一个连通分量中的王子的话,一定有另外             至少一个MM和一个王子在同一个连通分量

2012-07-23 13:41:09 2082

原创 poj 1486 Sorting Slides 二分匹配

题意:给出几张纸的覆盖范围,和几个标号的坐标,求最多的可以确定这些纸的标号                 思路:每张纸作为X部,标号作为Y部,如果标号在纸中,则连一条边,求最大匹配。检验是否有多重的匹配时,可以枚举删除匹配边,再对其进行匹配,若找到匹配边,                  则该纸的标号不确定。                以下是代码:              #

2012-07-23 13:25:22 393

原创 poj 2226 Muddy Fields 二分匹配匈牙利

题意:用最少的木板覆盖所有带*号的点。                  思路:这题主要在于建图,先遍历每一行,进行标号1~i,相连的带*号的点标号相同,行的标号作为二分图的X部分。再以列进行同样操作,标号1~j,作为二分图的Y部                                分,对于每个点,如果两次标号不同,则连一条边。求最小点覆盖                   代

2012-07-23 13:15:57 312

原创 poj 2060 Taxi Cab Scheme 二分匹配匈牙利

题意:有n个任务,从a点到b点,如果一辆车在a点的下个任务开始时间前一分钟可以返回a点的话则可以继续下个任务,求完成所有任务所需要的最少车的数目:           思路:最少路径覆盖,如果两个任务可以用一辆车完成的话,则连一条边,最后由m-最大匹配数得到结果。           代码:  #include#include#include#include#include#

2012-07-22 22:05:53 293

转载 强连通分量 tarjan算法

本文仅供本菜鸟复习用。。大家看看就好,笑笑而过。            参考资料:http://wenku.baidu.com/view/ceb92fe2524de518964b7d66.html           #include#include#include#include#include#define maxn 5005#define maxm 100005#d

2012-07-22 21:45:39 909

原创 二分图最大匹配Hopcroft_Karp算法 及hdu2389

学二分好几天了。。以为匈牙利和KM算法够用的。。没想到我还是太天真了。晚上在切hdu 2389的时候匈牙利一直TLE。好吧!只能去网上看大牛的题解。所以就认识了Hopcroft_Karp算法(简称HK),一个二分匹配中很高效的算法。我们知道匈牙利算法复杂度为O(en),而HK为v(en^0.5),还是很快的。          大概思路:用BFS对X部分的所有未被覆盖的点进行寻找增广路,列出所

2012-07-21 21:05:56 477

原创 完全二分图的最大权完美匹配 KM算法

最近在切二分匹配的题目,以前只学了点概念,趁现在有时间仔细得学下,下午和晚上花了几个小时学了KM算法,开始比较难理解,看了lrj的ppt后,有点明白了,现在整理下,以便记住。        概念:                 lx(u),ly(v)分别表示左右两边的顶点顶标,即每一个点的值,这里有lx(u)+ly(v)>=w(u,v),选值时可令ly(v)=0,lx(u)为邻边权值最大

2012-07-17 21:56:06 1227

转载 二分图匹配总结

对于任意图:|最小边覆盖|+|最大匹配|=|V|二分图的最大匹配=最小点覆盖数对于二分图:以下数值等价.最大匹配最小点覆盖|V|-最大独立集(二分图or有向无环图)|V|-最小边覆盖数|V|-最小路径覆盖数(有向无环图)|V|-最小路径覆盖数/2(无向图)(上面括号里有有向无环图的,均是将一个点拆成两个点连边匹

2012-07-14 19:03:14 694

原创 poj 1379 Run away 模拟退火

第一道模拟退火题是看了别人的代码才会的,现在对这种题目只能是乱搞了。        题意:求距离所有点中最近的点的距离最大。       代码:  #include#include#include#include#define sqr(x) ((x)*(x))#define eps 1e-3#define Maxn 1000+10#define INF 0x3f3f3f3

2012-07-14 17:56:19 289

原创 uva 10173 凸包最小覆盖矩形面积

题意:求凸包的最小覆盖矩形面积            #include#include#include#include#include#define Maxn 1001+10#define sqr(x) ((x)*(x))#define min(a,b) a<b?a:busing namespace std;const double eps=1e-8;const doub

2012-07-14 17:48:17 575

原创 poj 2079 Triangle 凸包最小覆盖三角形

题意:求覆盖所有点的最小三角形面积#include#include#include#include#include#include#include#include#define sqr(x) ((x)*(x))using namespace std;const double eps=1e-8;const double pi=acos(-1.0);int dc

2012-07-14 17:41:52 564

原创 poj 3608 Bridge Across Islands 凸包最短距离

题意:求两个凸包的最短距离            思路:将凸包逆时针化,寻找一个凸包的y最小的一个点,另一个凸包y最大的点,分别按逆时针旋转卡壳,更新最短距离。            代码:            #include#include#include#include#include#define sqr(x) ((x)*(x))#define maxn 10

2012-07-14 16:52:48 394

原创 poj 2187 Beauty Contest 凸包最长直径

题意:求所有点中最远距离,即凸包的最长直径                 思路:求凸包,旋转卡壳求最长直径,枚举各个点,找对踵点,更新距离                 代码:                 #include#include#include#include#include#include#include#include#define sqr(x

2012-07-14 16:47:15 299

原创 poj 2600 Geometrical dreams 模拟退火

哎!还是没有掌握模拟退火的精髓啊!继续努力吧!               题意:给出多边形外点的坐标Mi和该点与多边形相邻两点的夹角AiMiAi+1,求多边形的各个顶点坐标。               思路:初始化一个点作为多边形的第一个点(顺时针方向),这里取原点,向八个方向进行移动得到 t,由第一个点根据坐标旋转求出其他各个点,取t与rp[0]到rp[n]最近的点作为rp[0](最

2012-07-14 15:45:42 554

原创 poj 2420 A Star not a Tree? 模拟退火

题目大意:在多边形中找一个点,让这个点距离所有点的距离和最短。          模拟退火,选一个随机点,朝上,下,左,右四个点移动          代码:#include#include#include#include#include#define maxn 100+10#define sqr(x) ((x)*(x))#d

2012-07-14 13:16:02 469

原创 poj 2069 super star 模拟退火

一开始随机选一个点,然后向四周随机移动,结果不是wa就是TLE,后来看了ch_g的博客,向最远的点靠近移动            题意:求覆盖空间所有点的球最小半径           代码如下: #include#include#include#include#include#incl

2012-07-14 13:13:06 323

原创 poj 3301 Texas Trip 三分法求旋转角极值

通过这题才知道有三分法,我们知道二分法对于单调函数而言是个非常好的方法,同样,对于凸性函数则用三分法的效率还是很高的。                三分法:http://www.cppblog.com/abilitytao/archive/2010/11/07/132863.html                坐标旋转:x1=cos(angle)*x-sin(angle)*y;

2012-07-14 13:06:29 924 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除