POJ2594拐点弯的二分
开始读题没理解题意,以为就是覆盖,可是怎么交都不对。。。 我就气愤了,结果去百度了一下发现奶奶的这题的机器人是可以隔点瞭望的,例如1->2->3、2->4、5->2 这个图 我现在5匹配2,2匹配4,那么1和3就剩下了,结果就是需要三个机器人。可是这与题意是相悖的,提议要求可一隔点向往,也就是说1能看到3,那么1和3也是可以匹配的,所以答案是2。(有向图的匹配和无向图的匹配是不一样的)
那么接下来的任务就简单了,我把所有间接到达的点全部变成直接到达,让他自己去随便匹配好了,答案一定是对的。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<vector>
#define maxn 510 using namespace std; vector<int> g[maxn];
int group[maxn][maxn];
int link[maxn],vis[maxn];
int n,m; int dfs(int x)
{
for(int i=;i<g[x].size();i++)
{
int e=g[x][i];
if(!vis[e])
{
vis[e]=;
if(link[e]==-||dfs(link[e]))
{
link[e]=x;
return true;
}
}
}
return false;
}
void floyd()
{
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
for(int k=;k<=n;k++)
{
if(group[k][i]&&group[i][j]&&j!=k) group[k][j]=;
}
}
}
}
void setup_map()
{
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(group[i][j])
g[i].push_back(j);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==&&m==) break;
for(int i=;i<=n;i++)
g[i].clear();
memset(group,,sizeof(group));
for(int j=;j<=m;j++)
{
int a,b;
scanf("%d%d",&a,&b);
group[a][b]=;
}
floyd();
setup_map();
memset(link,-,sizeof(link));
int sum=;
for(int q=;q<=n;q++)
{
memset(vis,,sizeof(vis));
if(dfs(q)) sum++;
}
printf("%d\n",n-sum);
}
return ;
}
POJ2594拐点弯的二分的更多相关文章
- C#_Markov_心得感想
来到实验室正好有一个月了,趁着端午假期稍微轻松一些,在大改程序体系之前,想将自己在这30天中工作之一Markov回顾一下,将从真实的写程序中学习到的知识.思想记录下来.希望能和大家积极讨论! 本文会以 ...
- Z可读作zed的出处?
Commercial and international telephone and radiotelephone SPELLING ALPHABETS between World War I and ...
- [kuangbin带你飞]专题十 匹配问题 二分匹配部分
刚回到家 开了二分匹配专题 手握xyl模板 奋力写写写 终于写完了一群模板题 A hdu1045 对这个图进行 行列的重写 给每个位置赋予新的行列 使不能相互打到的位置 拥有不同的行与列 然后左行右列 ...
- poj 1905 Expanding Rods (数学 计算方法 二分)
题目链接 题意:将长度为L的棒子卡在墙壁之间.现在因为某种原因,木棒变长了,因为还在墙壁之间,所以弯成了一个弧度,现在求的是弧的最高处与木棒原先的地方的最大距离. 分析: 下面的分析是网上别人的分析: ...
- HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)
二分是一种很有效的减少时间开销的策略, 我觉得单列出二分专题有些不太合理, 二分应该作为一中优化方法来考虑 这几道题都是简单的使用了二分方法优化, 二分虽然看似很简单, 但一不注意就会犯错. 在写二分 ...
- 证明与计算(3): 二分决策图(Binary Decision Diagram, BDD)
0x01 布尔代数(Boolean algebra) 大名鼎鼎鼎的stephen wolfram在2015年的时候写了一篇介绍George Boole的文章:George Boole: A 200-Y ...
- 洛谷P3933 Chtholly Nota Seniorious 【二分 + 贪心 + 矩阵旋转】
威廉需要调整圣剑的状态,因此他将瑟尼欧尼斯拆分护符,组成了一个nnn行mmm列的矩阵. 每一个护符都有自己的魔力值.现在为了测试圣剑,你需要将这些护符分成 A,B两部分. 要求如下: 圣剑的所有护符, ...
- “玲珑杯”ACM比赛 Round #13 B -- 我也不是B(二分排序)
题意:开始有一个空序列s,一个变量c=0,接着从左往右依次将数组a中的数字放入s的尾部,每放一个数字就检测一次混乱度K,当混乱度k大于M时就清空序列并让c=c+1 K = Bi * Vi(1<= ...
- Luogu P1663 山【二分答案/实数域】By cellur925
题目传送门 现在要在山上的某个部位装一盏灯,使得这座山的任何一个部位都能够被看到. 给出最小的y坐标,如图的+号处就是y坐标最小的安装灯的地方. 这个题嘛...今年省选前学姐来我们(破烂)的机房串门的 ...
随机推荐
- docker安装软件
镜像相关命令 1.搜索镜像 # docker search java 可使用 docker search命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地 ...
- 七,JOBC数据库编程
七,JOBC数据库编程 七,JOBC数据库编程 一,java数据库编程步骤 1,将数据库驱动包考入lib目录: 2,加载驱动--整个操作数据库程序运行期间只需要加载一次 Class.forName(& ...
- HDU 2899Strange fuction(模拟退火)
题意 题目链接 求 $F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 <= x <=100)$的最小值 Sol 强上模拟退火,注意eps要开大! /* */ ...
- 移动端rem单位和px单位换算
rem单位是根据html元素的单位在页面根据不同的手机屏幕分辨率动态整体的按比例缩小或放大字体. 假如html{font-size: 14px;},那么1rem=14px; 一个div宽度48px,那 ...
- SQL查询-约束-多表
一.SQL语句查询 1.聚合函数 COUNT()函数,统计表中记录的总数量 注:COUNT()返回的值为Long类型;可通过Long类的intValue()方法 ...
- Java中方法的继承以及父类未被子类覆盖的方法调用的问题
在看java继承这一块的时候发现了一个问题,即父类未被子类覆盖的方法是如何调用的? 是子类拥有了父类的该方法只是没有显示表示,还是子类调用了父类的该方法. 为此做了一下验证 代码如下: public ...
- selenium +python之多线程与多进程应用于自动化测试
多线程与多进程与自动化测试用例结合起来执行,从而节省测试用例的总体运行时间. 多线程执行测试测试用例 以百度搜索为例,通过不同的浏览器来启动不同的线程. from selenium import we ...
- 首次将项目从eclipse提交到服务器的SVN
1.在Eclipse项目中,点击需要提交到svn的项目,鼠标右键,如下图: 2.鼠标右键后,我们看到Team选项,在二级菜单中点击“Share Project”,这个时候弹出“Share Projec ...
- ABAP和Java单例模式的攻防
ABAP CLASS zcl_jerry_singleton DEFINITION PUBLIC FINAL CREATE PRIVATE . PUBLIC SECTION. INTERFACES i ...
- EF生成的实体映射含义
如图: 组合效果: LEFT JOIN 效果: this.HasOptional(t => t.子表) .WithMany(t => t.主表) .HasForeignKey(d => ...