随笔分类 -  ACM-图论-二分图匹配

摘要:题意: 有n个红色的点和n个蓝色的点,如果红色的点的横坐标和纵坐标分别比蓝色的点的横坐标和纵坐标小,那么这两个点就可以成为一对友好的点。 问最多可以形成多少对友好的点。 思路: 裸的二分图匹配,对于满足条件的两个点连边。 wa了两发,板子错了,还是得用果苣的!。 代码: 阅读全文
posted @ 2018-04-12 18:18 qrfkickit 阅读(290) 评论(0) 推荐(0)
摘要:题意: 有若干个观看者,要对节目进行投票,每张票一定让一直猫留下,一只狗下场,或者一只狗留下,一只猫下场。 如果某个观看者希望留下的动物下场了,或者希望下场的动物留下了,那么他就会离开。 给出若干个投票信息,求出能够留下的人的最大值。 思路: 假设此时有两个人有矛盾,那么一定是其中一个人希望留下的, 阅读全文
posted @ 2018-04-12 17:28 qrfkickit 阅读(223) 评论(0) 推荐(0)
摘要:题意: 一个n * n的棋盘上放着n个棋子,现在要求把这n个棋子用最少的步数移到同一条直线上,即同一列同一行或者同一对角线(两条)。输出最少的步数(只能往四个方向移动,即正东,正西,正南,正北)。 思路: 每个棋子唯一对应一个格子,每个棋子不能在同一个格子,那么就相当于一个二分图(强行二分图)。 因 阅读全文
posted @ 2018-04-12 17:26 qrfkickit 阅读(509) 评论(0) 推荐(0)
摘要:题意: 一个平面上有n个黑色的点,n个白色的点,要求黑色的点与白色点之间一一配对,且线段之间不相交。 思路: 线段不相交并不好处理,想了很久想不出,所以看了蓝书的讲解。 一个很明显的结论是,不相交的线段一定比相交的线段短,如图:一个较为直观的例子。 由于点之间一一对应,所以肯定用二分图匹配,然后要使 阅读全文
posted @ 2018-04-12 17:25 qrfkickit 阅读(230) 评论(0) 推荐(0)
摘要:题意: 给出一个n * n的矩阵,要求给每一行和每一列安排一个数字,使得对于每个数字a[i][j],这一行安排的数字row[i]和这一列安排的数字col[j]满足row[i] + col[j] >= a[i][j]。要求使得每一行安排的数字和每一列安排的数字之和最小。输出每一行和每一列安排的数字,再 阅读全文
posted @ 2018-04-12 17:23 qrfkickit 阅读(123) 评论(0) 推荐(0)
摘要:题意: 给出一个r * c的矩阵,某些格子中有坏蛋,一次操作可以灭掉一行或者一列上的全部坏蛋,问最少多少次操作可以灭掉所有的坏蛋并且输出每次的操作。 思路: 把每一个点拆成行与列两个点,然后两个点之间连边,就形成了一个二分图。用最少的操作去消灭所有的坏蛋,就是用最少的点去覆盖所有的边,转化成了二分图 阅读全文
posted @ 2018-04-12 17:22 qrfkickit 阅读(195) 评论(0) 推荐(0)
摘要:题意: 有一个老师想组织学生出去旅游,为了避免他们之间有情侣产生,他制定了一系列的条件,满足这些条件之一,那么这些人理论上就不会成为情侣: 身高相差40cm;性别相同;喜欢的音乐风格不同;最喜欢的运动相同。 给出若干个学生的身高,性别,喜欢的音乐风格和喜欢的运动,问最多有多少人可以出去。 思路: 对 阅读全文
posted @ 2018-04-12 17:20 qrfkickit 阅读(168) 评论(0) 推荐(0)
摘要:题意: 有m个人要坐出租车,每个人给出出发时间,出发地点和目的地(以二维坐标表示),两个地点之间所花的时间计算方式是两点之间的哈密顿距离。现在需要排遣车出去,一辆车每次只能装一个人,如果一辆车在装完一个人A之后,再到达另一个人B的出发地点的时间,比这个人的出发时间至少提前1分钟,那么这个车就可以乘坐 阅读全文
posted @ 2018-04-12 17:19 qrfkickit 阅读(162) 评论(0) 推荐(0)
摘要:题意: 给出n个点,以及每个点到其他点的有向距离,要求设计线路使得每一个点都在一个环中,如果设计的线路拥有最小值,那么这个线路就是可选的。输出这个最小值或者说明最小线路不存在。 思路: 在DAG的最小路径覆盖中,找到的最大匹配数实际是非终点的点的最大数量(每一个匹配对应一个起点),点数减去这个数量就 阅读全文
posted @ 2018-04-12 17:17 qrfkickit 阅读(243) 评论(0) 推荐(0)