这题主要是字符读入的问题吧,对于NAME的读入,一直getchar()到',',对于后面的五个属性from,to,length,people number,light只读数字就可以了,而且他们的处理相同,可以用一个函数来实现下面是代码:1.                       #include<iostream>
2.                       #include<cstdio>
3.                       #include<cstring>
4.                       #include<queue>
5.                       #include<algorithm>
6.                       using namespace std;
7.                       struct Edge{
8.                           long a,b;
9.                       };
10.                    struct Edge e[30002];
11.                    long pos[1001],next[30002],d[1001];
12.                    long w[30002][3];
13.                    bool v[1001];
14.                    long n,m,s,t,tt,tot;
15.                     
16.                    long init(void)
17.                    {
18.                        char c;
19.                        long k=0;
20.                        c=getchar();
21.                        while (!((c>='0')&&(c<='9'))){c=getchar();}
22.                        while ((c>='0')&&(c<='9')){
23.                            k=k*10+c-'0';
24.                            c=getchar();
25.                        }
26.                        return k;
27.                    }
28.                     
29.                    void build(long x,long y,long len,long pn,long light)
30.                    {
31.                        tot++;
32.                        e[tot].a=x;e[tot].b=y;w[tot][0]=len;w[tot][1]=pn;w[tot][2]=light;
33.                        next[tot]=pos[x];
34.                        pos[x]=tot;
35.                    }
36.                     
37.                    void spfa(long s,long t,long QU)
38.                    {
39.                        queue<long> q;
40.                        memset(v,sizeof(v),0);
41.                        for (long i=1;i<=n;i++)d[i]=1000000000;
42.                        d[s]=0;v[s]=true;q.push(s);
43.                        while (!q.empty())
44.                        {
45.                            long now=q.front();q.pop();
46.                            long k=pos[now];
47.                            while (k)
48.                            {
49.                                long y=e[k].b;
50.                                if (d[y]>d[now]+w[k][QU])
51.                                {
52.                                    d[y]=d[now]+w[k][QU];
53.                                    if (!v[y])
54.                                    {
55.                                        q.push(y);v[y]=true;
56.                                    }
57.                     
58.                                }
59.                                k=next[k];
60.                            }
61.                            v[now]=false;
62.                        }
63.                        printf("%ld",d[t]);
64.                        if (QU!=2)cout<<' '; else cout<<endl;
65.                     
66.                    }
67.                     
68.                    int main()
69.                    {
70.                     
71.                     
72.                      cin>>tt;
73.                        while(tt--){
74.                            cin>>n>>m>>s>>t;
75.                            tot=0;
76.                            memset(pos,0,sizeof(pos));
77.                            for (long i=0;i<m;i++)
78.                            {
79.                                char s;
80.                                s=getchar(); while (s!=',') s=getchar();
81.                                long x=init();//cout<<x<<endl;
82.                                long y=init();//cout<<y<<endl;
83.                                long len=init();//cout<<len<<endl;
84.                                long pn=init();//cout<<pn<<endl;
85.                                long light=init();//cout<<light<<endl;
86.                                build(x,y,len,pn,light);
87.                                build(y,x,len,pn,light);
88.                            }
89.                            spfa(s,t,0);
90.                            spfa(s,t,1);
91.                            spfa(s,t,2);
92.                        }
93.                        return 0;
94.                    }

转载于:https://www.cnblogs.com/USTC-ACM/archive/2013/03/11/2954398.html

上交三月月赛[SJTU] 1105 path相关推荐

  1. 上交三月月赛[SJTU] 1106 sudoku

    题目大意:给出一道数独题,判断该数独是否有解且有唯一解. 解题思路: 由前几题的难度得,此题的难度不会太过分,所以简单暴力就可以了,40ms用时一本满足. 简单地讲一下具体的实现,从左上开始从左到右从 ...

  2. 【洛谷月赛】洛谷三月月赛题解报告

    昨天就是洛谷三月月赛,小编考的并不好,才31分,隔壁大佬50分,于是小编决定改一改题,先看第一题: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 x 是否合法. x 合法 ...

  3. 洛谷P5238 整数校验器【三月月赛】

    题目描述 https://www.luogu.org/problemnew/show/P5238 主要考虑的有几点 1.单独"-"是不行的,-0类似的也不行,00,01,02这样的 ...

  4. 洛谷三月月赛——P5238 整数校验器

    题目链接: P5238 整数校验器 题目描述 有些时候需要解决这样一类问题:判断一个数 xxx 是否合法. xxx 合法当且仅当其满足如下条件: xxx 格式合法,一个格式合法的整数要么是 000,要 ...

  5. 上海市计算机学会竞赛平台(iai.sh.cn)2023三月月赛(丙组)解题报告

    前言 总的来说这次的丙组偏简单,像我这个菜鸟都能在赛场上AK,之前的比赛后两题会有递归搜索并且要有一定的数学思维,但这次并没有什么高深的算法或者数学思维. 一到三题不用多说,是模拟题,可能带点技巧.从 ...

  6. 安恒赛php_安恒11月月赛周周练writeup

    前言 11月月赛 完美错过时间,正好有周周练,基本都是一样月赛的web,记录下write up 手速要快 这题是10月月赛中的一题,直接看我上次的writeup:安恒月赛(十)web-2题writeu ...

  7. 何凯明团队又出新论文!联合北大、上交用ViT做迁移学习,效果惊人!

    ‍ 转自:新智元 [导读]何凯明团队又发新论文了!这次他们研究的是如何将预训练好的ViT迁移到检测模型上,使标准ViT模型能够作为Mask R-CNN的骨干使用.结果表明,与有监督和先前的自我监督的预 ...

  8. USACO全部月赛及GateWay数据

    月赛: 以07年open为例,网站如下 http://contest.usaco.org/OPEN07 其他的格式是http://contest.usaco.org/月份(月份的英文前三位,比如1月是 ...

  9. python实现查收电子文件作业上交情况(完更)

    python实现查收电子文件作业上交情况(完更) 本文涉及正则匹配.生成表格 代码段已更新,新增匹配未交名单功能 每周都要收班里的C语言作业,上一个收C语言作业的人已经查文件查疯了,我不能重蹈覆辙,所 ...

最新文章

  1. ASP截取字符 截取字符之间的字符
  2. HDU 2897 邂逅明下(简单博弈)
  3. Angular compiler报的一个错误消息:Component XX is not part of any NgModule
  4. 修改win10我的文档下载等移动别处
  5. 【中级】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 01 - 文件组成详细分析
  6. (android实战)第三方应用反编译并修改UI信息后,重新编译
  7. linux 使用expect 实现自动登录
  8. 无缝对接Spark与R:Sparklyr系列—探讨属于数据科学家的Spark
  9. 银河麒麟操作系统添加字体
  10. 核电厂功能安全分类、软件可靠性以及相关标准
  11. 数据挖掘之拟合优度检验
  12. EditPlus 编程背景色设置与代码高亮
  13. [PYTHON]批量合并WORD文档,DOCX格式
  14. ORA-20005: object statistics are locked (stattype = ALL)-转
  15. matlab2017b怎么进行sil测试,用 SIL 和 PIL 仿真测试生成的代码
  16. 幕客学习CSS3全面基础知识点
  17. linux监控某个端口流量抓包,tcpdump命令 – 监听网络流量
  18. 计算机网络八股文-面试必问
  19. 我使用的IJK拉流直播播放器
  20. matlab小波变换图像融合,MATLAB小波变换的图像融合算法的研究与实现+代码

热门文章

  1. Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能
  2. spring解决ajax跨域问题
  3. Linux学习笔记之   pstree,htop,glances,dstat 命令使用
  4. Java之基础(1) - 编程中“为了性能”尽量要做到的一些地方
  5. HDU 4267 A Simple Problem with Integers
  6. 深入理解printf 之一 问题引出
  7. Linux下网络编程
  8. Prometheus 由于时间不同步导致数据不显示
  9. Vue学习笔记第一天--es6
  10. 交换机定时自动备份配置文件的方法