poj 1161 Walls
来源:互联网 发布:python爬虫代码下载 编辑:程序博客网 时间:2024/05/19 15:25
//poj 1161 Walls 平面图的对偶图
/*
题解: 求平面图的对偶图,然后按题意枚举见面地点就好了。
PS: 这题WA了N次,有点绝望,错在把n个点也加入图,分别
与它所属的几个面相连,这样就会造成原本不相连的面可能会
通过某个点相连。
*/
#include <iostream>
#include <vector>
using namespace std;
const int inf = 1<<28;
int n,m,l;
int p[300];
int pos[31];
int con[210][210],hash[260][260];
int Q[210],mark[210],wt[210];
vector<int> tag[31];
int bfs(int s)
{
memset(mark,0,sizeof(mark));
int head=0,tail=0;
Q[tail++]=s;
mark[s]=1;
wt[s]=0;
while (head<tail)
{
int k=Q[head++];
for (int i=1;i<=m;i++)
if (!mark[i] && con[i][k])
{
wt[i]=wt[k]+1;
mark[i]=1;
Q[tail++]=i;
}
}
int sum=0;
for (int i=1;i<=l;i++)
{
int ans=inf;
for (int j=0;j<tag[i].size();j++)
{
ans=min(ans,wt[tag[i][j]]);
}
sum+=ans;
}
return sum;
}
int main()
{
while (scanf("%d%d%d",&m,&n,&l)!=EOF)
{
int a,k;
memset(hash,0,sizeof(hash));
memset(con,0,sizeof(con));
for (int i=1;i<=l;i++) { tag[i].clear(); scanf("%d",&pos[i]);}
for (int i=1;i<=m;i++)
{
scanf("%d",&k);
for (int j=0;j<k;++j)
{
scanf("%d",&p[j]);
for (int v=1;v<=l;v++)
if (pos[v]==p[j])
{
tag[v].push_back(i);
break;
}
if (j){
if(a=hash[p[j]][p[j-1]])
con[a][i]=con[i][a]=1;
else hash[p[j-1]][p[j]]=i;
}
}
if (a=hash[p[0]][p[k-1]])
con[a][i]=con[i][a]=1;
else hash[p[k-1]][p[0]]=i;
}
int ans=inf;
for (int i=1;i<=m;i++)
{
ans=min(ans,bfs(i));
}
printf("%d/n",ans);
}
system("pause");
return 0;
}
- poj 1161 Walls
- POJ 1161 Walls
- POJ 1161 walls
- POJ-1161-Walls
- POJ 1161 WALLS
- POJ 1161 WALLS (FLOYD)
- [POJ 1161] Walls 建图
- POJ 1161 Walls
- POJ 1161 Walls(建图+Floyd)
- poj 1161 Walls floyd算法
- POJ 1161 Walls(二分图匹配)
- POJ 1161 Walls(floyd最短路)#by zh
- POJ 3470|Walls|线段树
- POJ 3470 Walls 已翻译
- pku 1161 Walls
- POJ 1794 Castle Walls(逆序数)#by zh
- poj1161 - Walls
- Destroy Walls
- 网页模仿QQ消息
- JDBC使用小记
- SQLServer数据库连接(二)
- poj 1095 Trees Made to Order
- 九首我收藏的木吉他独奏
- poj 1161 Walls
- java 系统运行监控
- 消息提示--有消息来时TOP页面自动刷新未读消息条数
- magento -- 修改文件来手动控制编译的开启和关闭
- poj 1101 The Game
- 【网络游戏程序开发培训班招生】3D高级班已经开课,第二期在11月初
- 网页代码小技巧
- GetClientRect,ClientToScreen,ClipCursor
- Struts学习小结 二