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(< ...
随机推荐
- MySQL binlog-server搭建
MySQL binlog-server搭建 binlog在备份中起着至关重要的作用,备份binlog文件时,只能先在本地备份,然后才能传送到远程服务器上.从MySQL5.6版本后,可以利用mysqlb ...
- C语言之结构体、联合体
结构体 1,结构体即为多个基本数据类型组合而成的数据类型.结构体本质上同int等一样同为数据类型,可以定义变量,内部成员不能直接赋值. struct Man { ; ; }; 上面是错误的.正确写法 ...
- progit 学习笔记-- 1 第一章 第二章
* 1 起步** 关于版本控制*** 什么是版本控制?记录文件变化,查阅特定版本,回溯到之前的状态.任何类型的文件进行版本控制.复制整个目录 加上备份时间 简单 混淆 无法恢复本地版本控制 数据库记 ...
- 对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)
对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App) 实验目的:对比使用Charles和Fiddler两个工具 实验对象:车易通App,易销通App 实验结果 ...
- Appium切换webview时候报chromedriver版本问题
前言 用appium切换webview的时候报chrome和chromedriver版本的问题:session not created exception: Chrome version must b ...
- Laya List翻页滚动方案 & List滚动源码解析
Laya List翻页滚动方案 & List滚动源码解析 @author ixenos 2019-03-29 1.List翻页滚动方案 /** * 计算下一页的起始索引, 不足时补足 * @p ...
- springboot的使用体验和思考
首先,写这篇博客的背景: 1,通过maven使用springboot创建项目,进行了简单的页面跳转,并未编写service和DAL层,也就是说,并未整合持久化框架 2,阅读了maven的官方文档.sp ...
- RESTful API接口
我所理解的RESTful Web API [设计篇] 百度:RESTful restful一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件 ...
- POJ 2092 Grandpa is Famous
Grandpa is Famous Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 7153 Accepted: 3624 ...
- vue 自定义日历组件
<template> <div class=""> <div class="calendarTraffic" name=" ...