博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3468(二分匹配)
阅读量:4543 次
发布时间:2019-06-08

本文共 1159 字,大约阅读时间需要 3 分钟。

题目链接:

大牛思路:

用BFS找出每一个集合点到其它可达点的距离以及这个集合点到下一集合点的距离

枚举是否能从一个集合点K经过一个宝物点X到达下一个集合点(K+1).如果能的话,则path[K][X]=true;

 如果发现有一个集合点不可达的话,则输出-1;

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define MAXN 110 8 char map[MAXN][MAXN]; 9 int dd[MAXN];//保存相邻集合点之间的距离 10 int dist[MAXN][MAXN*MAXN];//保存集合点到图中任意一点之间的距离 11 bool mark[MAXN*MAXN]; 12 bool path[MAXN][MAXN*MAXN];//标记二部图x与y的连通性 13 int match[MAXN*MAXN];//匹配 14 int dir[4][2]={
{-1,0},{
1,0},{
0,-1},{
0,1}}; 15 int n,m,p,q; 16 17 int GetId(char ch){ 18 if(ch>='A'&&ch<='Z')return ch-'A'; 19 return ch-'a'+26; 20 } 21 22 void bfs(int x,int y,int id){ 23 queue
Q; 24 Q.push(x),Q.push(y); 25 dist[id][x*m+y]=0; 26 while(!Q.empty()){ 27 x=Q.front();Q.pop(); 28 y=Q.front();Q.pop(); 29 int d=dist[id][x*m+y]; 30 for(int i=0;i<4;i++){ 31 int xx=x+dir[i][0]; 32 int yy=y+dir[i][1]; 33 if(xx>=0&&xx
=0&&yy
View Code

 

转载于:https://www.cnblogs.com/wally/archive/2013/05/20/3089138.html

你可能感兴趣的文章
iOS中延时执行方法的比较和汇总
查看>>
1284 2 3 5 7的倍数
查看>>
php 手记
查看>>
设计模式-注册树模式
查看>>
Vim有哪几种模式?
查看>>
Unity基本API总览
查看>>
如何将一段文本编译成C#内存程序的过程
查看>>
PAT——1070. 结绳
查看>>
【23.33%】【codeforces 664C】International Olympiad
查看>>
java-网络编程-使用URLDecoder和URLEncoder
查看>>
最短路之dijkstra算法
查看>>
SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成
查看>>
Lua语法基础(一)
查看>>
.Net Core2.*学习手册
查看>>
实验一、命令解释程序的编写实验
查看>>
2018年11月14日 学习字符串用法2
查看>>
2019年5月26日 re模块2
查看>>
Python学习笔记(一)——初学Python
查看>>
顺序表应用8:最大子段和之动态规划法(SDUT 3665)
查看>>
Python内置函数(52)——range
查看>>