Treasure Exploration(二分最大匹配+floyd)
Time Limit: 6000MS | Memory Limit: 65536K | |
Total Submissions: 7455 | Accepted: 3053 |
Description
Input
Output
Sample Input
1 0
2 1
1 2
2 0
0 0
Sample Output
1
1
题解:需要加上floyd,用上vector 竟然re了;
ac代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
const int MAXN=;
int mp[MAXN][MAXN],vis[MAXN],usd[MAXN];
int N;
bool dfs(int u){
for(int i=;i<=N;i++){
if(!vis[i]&&mp[u][i]){
vis[i]=;
if(!usd[i]||dfs(usd[i])){
usd[i]=u;return true;
}
}
}
return false;
}
void floyd(){
for(int i=;i<=N;i++)
for(int j=;j<=N;j++)
if(mp[i][j]==){
for(int k=;k<=N;k++)
if(mp[i][k]&&mp[k][j])
mp[i][j]=;
}
}
int main(){
int M;
while(scanf("%d%d",&N,&M),N|M){
int a,b;
mem(mp,);mem(usd,);
while(M--){
scanf("%d%d",&a,&b);
mp[a][b]=;
}
int ans=;
floyd();
for(int i=;i<=N;i++){
mem(vis,);
if(dfs(i))ans++;
}
printf("%d\n",N-ans);
}
return ;
}
re代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
const int MAXN=;
int vis[MAXN],usd[MAXN];
vector<int>vec[MAXN];
int N;
bool dfs(int u){
for(int i=;i<vec[u].size();i++){
int v=vec[u][i];
if(!vis[v]){
vis[v]=;
if(!usd[v]||dfs(usd[v])){
usd[v]=u;return true;
}
}
}
return false;
}
void floyd(){
for(int i=;i<=N;i++){
for(int k=;k<vec[i].size();k++)
for(int j=;j<vec[vec[i][k]].size();j++){
vec[i].push_back(vec[vec[i][k]][j]);
}
}
}
int main(){
int M;
while(scanf("%d%d",&N,&M),N|M){
int a,b;
mem(usd,);
for(int i=;i<=N;i++)vec[i].clear();
while(M--){
scanf("%d%d",&a,&b);
vec[a].push_back(b);
}
floyd();
int ans=;
for(int i=;i<=N;i++){
mem(vis,);
if(dfs(i))ans++;
}
printf("%d\n",N-ans);
}
return ;
}
Treasure Exploration(二分最大匹配+floyd)的更多相关文章
- poj 2594 Treasure Exploration (二分匹配)
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 6558 Accepted: 2 ...
- POJ-2594 Treasure Exploration,floyd+最小路径覆盖!
Treasure Exploration 复见此题,时隔久远,已忘,悲矣! 题意:用最少的机器人沿单向边走完( ...
- POJ 2594 —— Treasure Exploration——————【最小路径覆盖、可重点、floyd传递闭包】
Treasure Exploration Time Limit:6000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64 ...
- POJ2594:Treasure Exploration(Floyd + 最小路径覆盖)
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 9794 Accepted: 3 ...
- POJ-2594 Treasure Exploration floyd传递闭包+最小路径覆盖,nice!
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 8130 Accepted: 3 ...
- POJ2594 Treasure Exploration(最小路径覆盖)
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 8550 Accepted: 3 ...
- Poj 2594 Treasure Exploration (最小边覆盖+传递闭包)
题目链接: Poj 2594 Treasure Exploration 题目描述: 在外星上有n个点需要机器人去探险,有m条单向路径.问至少需要几个机器人才能遍历完所有的点,一个点可以被多个机器人经过 ...
- Treasure Exploration POJ - 2594 【有向图路径可相交的最小路径覆盖】模板题
Have you ever read any book about treasure exploration? Have you ever see any film about treasure ex ...
- POJ2594 Treasure Exploration【DAG有向图可相交的最小路径覆盖】
题目链接:http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K T ...
随机推荐
- python学习(序章)
好久没写过笔记了,最近听说写博客笔记能使知识记忆更深刻,于是就开始写写,不为推广,只为增加记忆.好了,开始python的学习: 学习一门语言的快慢,与人无关,主要是与学习的目的有关,python语言目 ...
- CSS小tip整理
CSS小tip整理 1.利用css在列表靠头和末尾添加箭头: /* 左箭头*/ ol a[rel="prev"]:before { content: "\00AB&quo ...
- /usr/bin/env: node: no such file or directory
今天在安装gulp的之后,运行gulp命令出现了如下报错: /usr/bin/env: node: no such file or directory 网上找了好久,终于解决了,所以记录一下,便于下次 ...
- 图片变灰css3
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filte ...
- subversion和客户端的应用
1.安装svn的服务器端subversion.以及windows客户端TortoiseSVN: 2 cmd 建立库,名字为svnpro ----- svnadmin create F:\svnpro, ...
- 【C++】基于socket的多线程聊天室(控制台版)
以前学习socket网络编程和多线程编程的时候写的一个练手程序 聊天室基本功能: 1.用户管理:登录,注册,登出,修改用户名,修改密码 2.聊天室功能:群聊,私聊,获取在线用户列表,获取所有用户列表 ...
- BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------- ...
- python 中文异常问题记录
头上加入以下内容试试: # -*- coding:utf-8import sysimport osreload(sys)sys.setdefaultencoding( "utf-8" ...
- verilog中连续性赋值中的延时
上次遇到一个问题.写一个testbench需要移动两个时钟之间的相位.后来一想,貌似我们都是这么写clock的 always #(`P/2) clk = ~clk 我的两个时钟都是这么写,只是p ...
- json对象的封装与解析
一.解析json对象 表结构信息对象,json格式,名称为tableObj * { * "tableName":"t_res", ...