Problem Description

终于有一天,王元姬用他的劫打上了最强王者。他号称,他从来不会在偶数段位停留,因为他的实力太强会跳段(这个13我给满分)。傲娇棠和翔妹觉得他的13装的都比勇哥哥好了,所以要打击他一下,就拿他最擅长的劫来出了一道题。
假设在瓦洛兰大路上有劫的影子一共n个,影子与影子之间共有m条路,路的长度为1.每两个影子之间有一个能量值,能量值为一个影子能到达另一个影子的最短路,如果不能到达,则说明这两个影子之间不存在能量值。
这时,姜天姬粗现了。他觉得这样还是太简单了。姜天姬说,我的皇子eq能切断一条路。这样请你再计算所有劫的影子的能量值之和。
对于每一条路,输出如果姜天姬切断这条路,剩余路中所有劫的影子的能量值之和。如果任意两个影子之间不存在能量值,则输出“无形装13,最为致命”.

Input

多组测试用例,读到文件结束为止。
每组用例第一行有两个数,n,m,n代表劫共有n个影子,m代表共有m条路。
接下来m行有u,v两个数,表示路由第u个影子通道第v个影子。
2<=n,m<=60

Output

对于每组用例,输出m行。
第i行代表如果姜天姬切断第i条边,那么劫的所有影子的能量和值是多少,如果有任意两个劫的影子的能量和不存在,输出“无形装13,最为致命”。(最为致命前面的逗号为中文逗号)
这题主要问题在于floyd会超时。所以必须得使用类似的bfs来写
另外有个坑点就是只要有两个点不连接就是说明答案是0
#include<cstdio>
#include<cstring>
int n,m,i,j,k,ans,tot,head,tail,x,y;
int base[505],pre[1005],vec[1005],nb[1005];
bool vis[505];
int dis[505],team[1005];
void add(int x,int y,int z)
{
vec[++tot]=y; pre[tot]=base[x]; base[x]=tot; nb[tot]=z;
}
void bfs(int s)
{
memset(dis,0,sizeof(dis));
memset(vis,0,sizeof(vis));
head=0; tail=1; team[1]=s; vis[s]=1;
while(head<tail)
{
head++;
int u=team[head];
for (int now=base[u];now;now=pre[now])
if (nb[now]!=k)
{
int v=vec[now];
if (!vis[v])
{
vis[v]=1;
tail++;
team[tail]=v;
dis[v]=dis[u]+1;
}
}
}
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
tot=0;
memset(base,0,sizeof(base));
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
add(x,y,i);
add(y,x,i);
}
for (k=1;k<=m;k++)
{
bool no=0;
ans=0;
for (i=1;i<=n;i++)
{
bfs(i);
for (j=1;j<=n;j++)
if (j!=i)
{
if (dis[j]==0) no=1;
else ans+=dis[j];
}
if (no) break;
}
if (no) printf("无形装13,最为致命\n");
else printf("劫影子的所有总能量之和:%d\n",ans/2);
}
}
}

一道bfs与邻接表应用题的更多相关文章

  1. 图的DFS和BFS(邻接表)

    用C++实现图的DFS和BFS(邻接表) 概述   图的储存方式有邻接矩阵和邻接表储存两种.由于邻接表的实现需要用到抽象数据结构里的链表,故稍微麻烦一些.C++自带的STL可以方便的实现List,使算 ...

  2. 数据结构之 图论---bfs(邻接表)

    数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索( ...

  3. 图的bfs遍历模板(邻接矩阵存储和邻接表存储)

    bfs遍历图模板伪代码: bfs(u){ //遍历u所在的连通块 queue q; //将u入队 inq[u] = true; while (q非空){ //取出q的队首元素u进行访问 for (从u ...

  4. ACM/ICPC 之 数据结构-邻接表+BFS(TSH OJ-无线广播Broadcast)

    这道题中若能够构成互不干扰的区域,其构成的图其实就是汉密尔顿路(Hamilton road),因此如果能够观察出来可以直接转化为汉密尔顿路的存在性证明,即便不能观察,我相信ACMer也能转化为BFS问 ...

  5. QDUOJ 生化危机 邻接表存图+BFS

    生化危机 发布时间: 2015年10月10日 18:05   时间限制: 1000ms   内存限制: 256M 描述 X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸......研究失败 ...

  6. 数据结构 《2》----基于邻接表表示的图的实现 DFS(递归和非递归), BFS

    图通常有两种表示方法: 邻接矩阵 和 邻接表 对于稀疏的图,邻接表表示能够极大地节省空间. 以下是图的数据结构的主要部分: struct Vertex{ ElementType element; // ...

  7. 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)

    数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...

  8. 邻接表实现Dijkstra算法以及DFS与BFS算法

    //============================================================================ // Name : ListDijkstr ...

  9. 数据结构(11) -- 邻接表存储图的DFS和BFS

    /////////////////////////////////////////////////////////////// //图的邻接表表示法以及DFS和BFS //////////////// ...

随机推荐

  1. HDU [P3605] Escape

    二分图多重匹配 改进版的匈牙利,加入了一个cnt数组作为找到增广路的标志 本题有一个重要的优化见注释 #include <iostream> #include <cstdio> ...

  2. Kolakoski序列产生器

    /* 本程序说明: Kolakoski序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列. 他的前几项为1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1 ...

  3. Centos6.8安装zabbix-3.2.6

    系统环境:Centos6.8 mini软件:zabbix-3.2.6 zabbix 服务端安装 安装yum 扩展源 rpm -ivh http://repo.webtatic.com/yum/el6/ ...

  4. iperf命令

    iperf命令网络测试 iperf命令是一个网络性能测试工具.iperf可以测试TCP和UDP带宽质量.iperf可以测量最大TCP带宽,具有多种参数和UDP特性.iperf可以报告带宽,延迟抖动和数 ...

  5. mysql中的范式与范式——读<<高性能mysql>>笔记一

    对于任何给定的数据库通常都有很多表示方法,从完全的范式化到完全的反范式化,以及两者的折中.在范式化的数据库中,每个事实数据会出现并且只出现一次.相反,在反范式化的数据库中,可能会存储在多个地方. 那什 ...

  6. 【学习笔记】Hibernate关联映射(Y2-1-6)

    Hibernate关联映射 关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 1.单向多对一关联 准备数据库 部门表和员工表 其中部门表有两列 部门编号和名称 员工表有三列 员工 ...

  7. 安装 LightGBM 包的过程

    conda install cmake conda install gcc git clone --recursive https://github.com/Microsoft/LightGBM ; ...

  8. No new migrations found. Your system is up-to-date.处理

    显然是migrations表中存储的相关操作记录了,删除就好了!!!

  9. CentOs下Mongodb的下载与安装

    1.下载MongoDB(64位) http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz tar zxvf mongodb-lin ...

  10. 《android开发艺术探索》读书笔记(一)--Activity的生命周期和启动模式

    No1: 如果新Activity采用了透明主题,那么当前Activity不会回调onStop: No2: 新Activity启动之前,栈顶的Activity需要先onPause后,新Activity才 ...