BUPT复试专题—网络传输(2014网研)
题目描述
我们给定的网络一共包含N个节点,其中节点1为数据源。网络中有M条无向边(u,v,w),表示一条传输线连接节点u和节点v,且数据通过这条传输线的时间为 w。我们一共会给定K个目标节点,节点1只会发送一次数据,你要计算出该数据从节点1传送到所有K个节点所需耍的最短时间。目标节点可以按任意顺序进行传送,数据可以多次经过同一节点。
输入
对于毎组测试数据:
第一行三个正整数N, M, K
分别表示节点数,边数和目标节点数,
接下来M行,毎行三个数(u,v,w)如上所述给出毎条传输线。
M后一行是K个整数,给出所有的目标节点的编号。所有节点的编号都在 1到N之间。
输出
样例输入
2
3 2 2
1 3 1
1 2 3
2 3
6 6 4
1 5 1
5 6 2
2 1 20
2 3 5
3 4 5
6 3 1
2 3 4 6
样例输出
5
19
提示
在第一组样例屮,最短路线是:1->3->1->2。
在第二组样例屮,最短路线是:1->5->6->3->2->3->4,或者1->5->6-> 3 -> 4 -> 3 -> 2
来源
思路是floyd + 全排列 交上去Runtime Error,没有发现问题有人发现问题的话求告知┭┮﹏┭┮
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define max 5000
#define INF 0x3f3f3f3f
int d[max][max],min_road=INF,now=;
int V;
void floyd()
{
for(int k=;k<V;k++)
for(int i=;i<V;i++)
for(int j=;j<V;j++)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
void permutation(char* pszStr,int k,int m)
{
int i,j;
if(k == m)
{
int lable,outprint=,lb;
for(int i=;i<=m;i++)
{
lb=pszStr[i]-'';
if(lb==)
continue;
outprint+=d[now][lb];
now=lb;
}
if(outprint<min_road)
{
min_road=outprint;
}
now=;
}
else
{
for(j=k;j<=m;j++)
{
swap(pszStr[j],pszStr[k]);
permutation(pszStr,k+,m);
swap(pszStr[j],pszStr[k]);
}
}
}
int main()
{
int a,nn,mm,kk,num;
while(~scanf("%d",&a))
{
while(a--)
{
cin>>V>>mm>>kk;
for(int i=;i<V;i++)
{
for(int j=;j<V;j++)
{
if(i==j)
d[i][j]=;
else
d[i][j]=INF;
}
}
while(mm--)
{
int x,y,z;
cin>>x>>y>>z;
d[x-][y-]=z;
d[y-][x-]=z;
}
floyd();
char szTextStr[max];
for(int j=;j<kk;j++)
{
char t;
cin>>t;
szTextStr[j]=t-;
}
szTextStr[kk]='\0';
permutation(szTextStr,,strlen(szTextStr)-);//全排列算法
cout<<min_road<<endl;
min_road=INF;
now=;
}
}
return ;
}
BUPT复试专题—网络传输(2014网研)的更多相关文章
- BUPT复试专题—进程管理(2014网研)
题目描述 在操作系统中,进程管理是非常重要的工作.每个进程都有唯一的进程标识PID.每个进程都可以启动子进程,此时我们称该它本身是其子进程的父进程.除PID为0的进程之外,每个进程冇且只冇一个父进程. ...
- BUPT复试专题—分数加法(2014网研)
题目描述 求2^-a + 2^-b,其中a和b均为正整数,结果用最简分数表示 输入 第一行为测试数据的组数T (1~400).请注意,任意两组测试数据之间相互独立的.每组测试数据一行,包含两个整数a和 ...
- BUPT复试专题—网络的核(2014)
题目描述 给定一个无向网络G,共有N个节点(1到N),M条边,求网络的核. 网络的核:到网络中其他节点距离之和最小的节点,且对于不连通的两点,他们之间的距离为N,若有多组解,输出编号最小的节点 输入 ...
- BUPT复试专题—数据库检索(2014软院)
题目描述 在数据库的操作过程中,我们进场会遇到检索操作.这个题目的任务是完成一些特定格式的检索,并输出符合条件的数据库中的所有结果. 我们现在有一个数据库,维护了学生的姓名(Name),性别(Sex) ...
- BUPT复试专题—奇偶求和(2014软件)
题目描述 给出N个数,求出这N个数,奇数的和以及偶数的和. 输入 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据之间是相互独立的. 每组数据包括两行: 第一行为一个 ...
- BUPT复试专题—Python List(2014)
题目描述 在Python中,List (列表)是一种非常重要的数据结构.它与C/C++/Java中的 数组有些类似,但支持添加新元素时的动态扩展.在这个问题中,你需要处理如下 的几种对List的操作. ...
- BUPT复试专题—最近公共祖先(2014软院)
题目描述 给出一棵有N个节点的有根树TREE(根的编号为1),对于每组查询,请输出树上节点u和v的最近公共祖先. 最近公共祖先:对于有向树TREE的两个结点u,v.最近公共祖先LCA(TREE u,v ...
- BUPT复试专题—最长连续等差子数列(2014软院)
题目描述 给定-个长度为N的整数数列,你需要在其中找到最长的连续子数列的长度, 并满足这个子数列是等差的.注意公差小于或等于0的情况也是允许的. 输入 第一行为数据组数T(1~100),表示测试数 ...
- BUPT复试专题—旋转图像(2014)
题目描述 将一幅只含有01像素点的图片进行顺时针旋转,旋转的角度仅包含0°,90°,180°,270° 输入 第一行一个整数T(<50)表示输入的组数 每组测试数据第一行是两个整数N和M(< ...
随机推荐
- Ubuntu sudo 出现 is not in the sudoers file解决方案
前言: 自己想额外创建一个Linux账户,但是发现新创建的用户(lgq)并不能使用sudo指令. 但是在安装系统时创建的用户(abc)是可以正常使用的. 原因是新创建的用户并没有被赋予使用sudo指令 ...
- Spring Cloud Stream在同一通道根据消息内容分发不同的消费逻辑
应用场景 有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的: ...
- Python数据分析库之pandas,你该这么学!No.1
写这个系列背后的故事 咦,面试系列的把基础部分都写完啦,哈哈答,接下来要弄啥嘞~ pandas吧 外国人开发的 翻译成汉语叫 熊猫 厉害厉害,很接地气 一个基于numpy的库 干啥的? 做数据分析用的 ...
- Python模块目录
阅读目录 模块 模块语法 常用模块 collections模块 time模块 random模块 os模块 sys模块 序列化模块 shelve模块 pickle模块 json模块 configpars ...
- c++ 快速幂 代码实现
懒得打代码系列… 不过这个代码挺短的死背下来也ok 解析在最下面 建议自己手动试个数据理解一下 比如 3^5 ^^ 原理:a ^ b = a ^ (b / 2) * 2 (b是奇数的话还要再乘一个a) ...
- Java实现——Dom4j读写XML文件
1. dom4j概述 解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP. 最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义. 2. do ...
- Linux下安装SaltStack
一.配置yum源和epel源 epel源下载地址:http://pan.baidu.com/s/1o7NJ26u 1.配置yum源 (1)上传操作系统镜像文件来配置yum源,挂载点目录为/yum mk ...
- Debian7配置LAMP(Apache/MySQL/PHP)环境及搭建建站
完整Debian7配置LAMP(Apache/MySQL/PHP)环境及搭建建站 第一.安装和配置Apache Web服务器 运行升级命令来确保我们的系统组件各方面都是最新的. apt-get upd ...
- ubuntu14.04 Cannot find OpenSSL's <evp.h>
Cannot find OpenSSL's <evp.h> when i configure php7 manually,i get trouble with that problem,f ...
- tab栏切换效 简易效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...