解题报告
题意:
给出NxN的矩阵,有M个点是障碍
每次只能删除一行或者一列,最少删除多少次才能清除障碍
思路:
把行和列看作两个集合结点,把障碍看作集合结点的连线,这样就转化成求用最少的点来消灭边,也就是最小点覆盖。
在二分图中:(n个结点,且没有孤立的点)
最小点覆盖=最大匹配
最大点独立=结点数-最大匹配
#include
#inclu...
分类:
其他好文 时间:
2014-07-26 01:55:56
阅读次数:
213
分析: 2*n个小朋友,每个最多有n-1个"敌人",显然是存在哈密顿回路的. 预处理边,然后找哈密顿回路.code#include #include #include #include #include using namespace std;#define pb push_back#def...
分类:
其他好文 时间:
2014-07-26 01:51:16
阅读次数:
271
开一个数组做成队列来搜索就好了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int MAXN=100010; 9 10 typedef struct po...
分类:
其他好文 时间:
2014-07-26 01:28:36
阅读次数:
260
题目链接题意:有N个城市被M条道路连接起来了,每两个城市之间可能存在超过一条路,但是城市之间是单向连接的。每条路是要花费的。每条路的花费可以选择两种方式:1:假如a城市到达b城市,如果之前经过了c城市,那么这条路上的花费为P也可以为R。2:如果没有经过c,则这条路上的花费为R。问从城市1到城市n最小...
分类:
其他好文 时间:
2014-07-26 01:19:16
阅读次数:
167
http://poj.org/problem?id=1651Multiplication PuzzleTime Limit:1000MSMemory Limit:65536KTotal Submissions:6188Accepted:3777DescriptionThe multiplicatio...
分类:
其他好文 时间:
2014-07-26 01:09:36
阅读次数:
176
分析: 基础的欧拉路算法,变化在于要求每条边正向和反向各走一遍。 链式前向星构图,只要标记走过的单向边,边找边输出即可。code#include #include using namespace std;struct node { int v, ne;} edge[100009];int h...
分类:
其他好文 时间:
2014-07-26 00:22:06
阅读次数:
221
题目链接题意:将长度为L的棒子卡在墙壁之间。现在因为某种原因,木棒变长了,因为还在墙壁之间,所以弯成了一个弧度,现在求的是弧的最高处与木棒原先的地方的最大距离。分析:下面的分析是网上别人的分析:设弦长为L0(即原长),弧长为L1=(1+n*C)*l0,目标值为h,半径为R,弧所对圆心角为2θ(弧度制...
分类:
其他好文 时间:
2014-07-26 00:16:26
阅读次数:
187
#include #include #include #include using namespace std;const int Max=1050;struct e{ int x1,x2;}edge[Max];struct c{ int x,y;}cal[4];int n,m;int X1,Y1,...
分类:
其他好文 时间:
2014-07-26 00:07:26
阅读次数:
260
第一次做网络流,看着教材里面的题解做的= =用的是Ford,应该是最好理解的把,就是不断的找有没有从源点到汇点的增广路然后更新。建图真是难啊,而且感觉细节要注意的地方比较多,一开始没有考虑反向弧,WA了两发,sad...#include #include #include #include #inc...
分类:
其他好文 时间:
2014-07-25 19:09:41
阅读次数:
248
DescriptionBessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from...
分类:
其他好文 时间:
2014-07-25 19:06:52
阅读次数:
339