Einbahnstrasse HDU2923
基础2923题
处理输入很麻烦
有可能一个城市有多辆破车要拖 应该严谨一点的 考虑所有情况
#include<bits/stdc++.h>
using namespace std; int m1[][];
int vis[];int dis[];
#define INF 99999
int n,e,cas; int a1[];int a2[]; void dijkstra(int v0)
{
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)dis[i]=m1[v0][i];
// for(int i=1;i<=n;i++)printf("%d ",dis[i]);cout<<endl;
vis[v0]=;
for(int i=;i<n-;i++)
{
int minn=INF,u=v0;
for(int j=;j<=n;j++)
{
if(vis[j]==&&dis[j]<minn)
{
u=j;minn=dis[j]; } }
vis[u]=;
for(int j=;j<=n;j++)
{
if(vis[j]==&&dis[u]+m1[u][j]<dis[j])
{
dis[j]=dis[u]+m1[u][j];
} } } }
int a[]; int main()
{
int c1,cas;map<string,int>ma;
int cas1=;
while(scanf("%d%d%d",&n,&c1,&cas)==&&(n+c1+cas))
{ ma.clear();
memset(a,,sizeof(a));
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
if(i==j)m1[i][j]=;
else m1[i][j]=INF; }
int c=;string s;cin>>s;
ma[s]=n; for(int i=;i<=c1;i++)
{
cin>>s;
if(!ma[s])ma[s]=++c;
a[i]=ma[s];
}
// printf("pl10\n");
string s1,s2,s3;
while(cas--)
{
cin>>s1>>s2>>s3;
int val=; //cout<<s1<<endl;
// cout<<s2<<endl;
// cout<<s3<<endl;
val=s2[]-'';
int i=;
while(isdigit(s2[i])){ val=val*+s2[i]-''; i++;}
// printf("val=%d\n",val);
if(!ma[s1])ma[s1]=++c;
if(!ma[s3])ma[s3]=++c;
if(s2[]=='<'&&m1[ ma[s3] ][ ma[s1] ]>val)m1[ ma[s3] ][ ma[s1] ]=val;
if(s2[ s2.size()- ]=='>'&&m1[ ma[s1] ][ ma[s3] ]>val)m1[ ma[s1] ][ ma[s3] ]=val; } // for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)
// printf("%d ",m1[i][j]);
// cout<<endl;
// } int sum=;
// for(int i=1;i<=c1;i++)printf("%d ",a[i]);cout<<endl;
for(int i=;i<=c1;i++)
{ dijkstra( a[i] );sum+=dis[n]; }
//printf("%d\n",sum);
dijkstra(n);
for(int i=;i<=c1;i++)sum+=dis[ a[i] ]; printf("%d. %d\n",++cas1,sum); } }
Einbahnstrasse HDU2923的更多相关文章
- HDU2923 Einbahnstrasse (Floyd)
Einbahnstrasse Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Einbahnstrasse
Einbahnstrasse Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU - 2923 - Einbahnstrasse
题目: Einbahnstrasse Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- hdu2923 最短路floyd
建图还是有点烦人的. #include<map> #include<string> #include<stdio.h> #include<iostream&g ...
- 【转】最短路&差分约束题集
转自:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★254 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【HDOJ图论题集】【转】
=============================以下是最小生成树+并查集====================================== [HDU] How Many Table ...
- hdu图论题目分类
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- 转载 - 最短路&差分约束题集
出处:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★ ...
随机推荐
- 矩阵NumPy
常量: np.pi π 创建矩阵数组 import numpy as np # array=np.array([[1,2,3],[5,6,7]]) #定义一个2行3列的矩阵数组.2行=2维 # pri ...
- Problem F Plug It In!
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
- js实现页面遮罩层,并且阻止页面body滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- char *与const char **函数参数传参问题
传参方法 ## 函数 extern void f2 ( const char ** ccc ); const char ch = 'X'; char * ch_ptr; const char ** c ...
- 【转】Python中的运算符
[转]Python中的运算符 说完常用的数据类型,再来说下运算符.运算符用于将各种类型的数据进行运算,让静态的数据跑起来. 编程语言中的运算大致分为以下几个大类: 算术运算, 用于加减乘除等数学运算 ...
- pytorch官网上两个例程
caffe用起来太笨重了,最近转到pytorch,用起来实在不要太方便,上手也非常快,这里贴一下pytorch官网上的两个小例程,掌握一下它的用法: 例程一:利用nn 这个module构建网络,实现 ...
- Linux性能分析的前60000毫秒【转】
Linux性能分析的前60000毫秒 为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么? 在Netflix我们有一个庞大的EC2 Linux集群,还有非常多的性能分析工具 ...
- JS禁止鼠标右键、禁止全选、复制、粘贴的方法(所谓的防盗功能)
简述:一个防君子不防小人的鸡肋的功能,针对小白还行. 代码如下: <script> //都能支持 document.oncontextmenu = function (e) { retur ...
- 【转】如何安装JDK以及配置Java运行环境
具体的参考这篇博文就好了~~!http://www.cnblogs.com/liu-en-ci/p/6743106.html
- Android Monkey压力测试环境搭建及使用
Android Monkey压力测试学习笔记 步骤:下载SDK -> 解压进入SDK Manager下载系统 -> 配置环境变量 -> 创建虚拟设备或连接真机 -> 进入命令模 ...