codevs 1021 玛丽卡

题目链接:http://codevs.cn/problem/1021/

题解:

  哦!最小值的最大值!!二分!!!……咳咳……

  SPFA算法,邻接表(邻接矩阵应该不会炸,懒得试了……)

  先进行一遍SPFA,用pre数组记录1到n的最短路径,之后枚举这条路径上的每一条边为“堵车”的路,删除该边并进行SPFA,每次进行完与当前ans比较,取较大值

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 #define MAXN 101000
 6 #define MAXM 3010000
 7 #define INF 214748364//注意,太大了会炸……
 8 int n,m,cnt,d[MAXN],heads[MAXN],q[MAXN],head,tail,pre[MAXN],ans,x,y,z;
 9 bool viss[MAXN];
10 struct node
11 {
12     int u,v;
13     int next;
14     int val;
15 }edge[MAXM];
16 void add(int x,int y,int z)
17 {
18     edge[++cnt].u=x;
19     edge[cnt].v=y;
20     edge[cnt].next=heads[x];
21     edge[cnt].val=z;
22     heads[x]=cnt;
23 }
24 void SPFA(bool _)//_值为true时进行的是第一遍SPFA,需要记录最短路径
25 {
26     head=1;tail=2;
27     q[1]=1;
28     viss[1]=true;
29     while(head<tail)
30     {
31         for(int i=heads[q[head]];i!=0;i=edge[i].next)
32         {
33             if(d[q[head]]+edge[i].val<d[edge[i].v])
34             {
35                 d[edge[i].v]=d[q[head]]+edge[i].val;
36                 if(_)pre[edge[i].v]=i;//记录最短路径,pre存储边的序号
37                 if(!viss[edge[i].v])
38                 {
39                     q[tail++]=edge[i].v;
40                     viss[edge[i].v]=true;
41                 }
42             }
43         }
44         viss[q[head]]=false;
45         head++;
46     }
47 }
48 void __()//枚举最短路径上的每一条边
49 {
50     if(x%2)y=x+1;
51     else y=x-1;//相邻两条单向边记录一条双向边,x,y分别记录两条边的编号
52     z=edge[x].val;
53     edge[x].val=edge[y].val=INF;//设置边权为很大的值相当于删除边
54     for(int i=1;i<=n;i++)d[i]=INF;
55     memset(viss,false,sizeof(viss));
56     d[1]=0;
57     memset(q,0,sizeof(q));
58     SPFA(0);
59     edge[x].val=edge[y].val=z;
60     if(d[n]!=INF)ans=max(d[n],ans);
61     x=pre[edge[x].u];//枚举下一条边
62     if(x==0)return;
63     __();
64 }
65 int main()
66 {
67     scanf("%d%d",&n,&m);
68     for(int i=2;i<=n;i++)d[i]=INF;
69     for(int i=1;i<=m;i++)
70     {
71         scanf("%d%d%d",&x,&y,&z);
72         add(x,y,z);
73         add(y,x,z);
74     }
75     SPFA(1);
76     ans=max(ans,d[n]);//其实可以删掉
77     x=pre[n];
78     __();
79     printf("%d",ans);
80     return 0;
81 }

PS:坑爹的codevs……,数据范围不准确,数组没开够竟然还显示TLE,把程序从递归改到循环之后才从zsc那里了解到这个问题……

循环程序可读性差,放递归程序

  

转载于:https://www.cnblogs.com/xqmmcqs/p/5965557.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3 rid1.7.4.2 控制台中文乱码_TL;DR - 有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解...

TL;DR 问题背景&#xff1a; 相信很多用 Sublime Text 来写 Python 2 的同学都遇到过以下这个问题&#xff08;例如这位同学 /t/100435 和这位同学/t/163012 &#xff09;&#xff1a; 在 Sublime Text 里用 Cmd (Ctrl) B 运行代码 print u中文&#xff0c;想要打印出 unicode…

条码管理系统mysql_银行通用固定资产条码管理系统

银行通用固定资产条码管理系统固定资产条码管理系统是企业管理中的一个重要组成部分&#xff0c;固定资产具有价值高&#xff0c;使用周期长、管理难度大等特点。针对这些问题&#xff0c;本系统运用计算机及条形码等技术&#xff0c;从而实现固定资产的信息化管理。本系统有如…

Linux用find查找指定文件的操作

一 . 查找当前用户下某个文件 例如 要查找的文件名为 sn_sav20140710 可已使用下面的语句查询 [sinopeclocalhost ~]$ find . -name sn_sav20140710 二.查找指定目录下的文件 这里只需指定目录即可 例如&#xff1a; 例如 要查找的文件名为 sn_sav20140710 可已使用下面的语句查…

服务器行业深度解析:服务器未来需求知多少

来源&#xff1a;国盛证券一、 全球公有云加速渗透叠加企业上云大趋势来临1. 全球云领军收入增速维持高位&#xff0c;Q2 CAPEX 出现恢复信号全球云计算进入甜蜜点&#xff0c;IaaS 市场主导增长。1&#xff09;2017 年 6 月&#xff0c;Morgan Stanley 认为全球云计算行业进入…

海上瓶子下有东西吗_洗衣液瓶子我从来不扔,瓶身这样剪几刀,解决了很多家庭的大烦恼...

洗衣液瓶子相信家家户户都会有&#xff0c;每次用完的空洗衣液瓶你都扔掉了吗&#xff1f;那就太可惜了&#xff0c;卖废品也卖不了几毛钱&#xff0c;我们可以将废弃的洗衣液瓶简单剪几刀&#xff0c;就能够变废为宝了&#xff0c;能够解决很多家庭生活中的大烦恼。今天就教大…

光耦继电器

光耦继电器(光电继电器) AQW282SX 282SZ 280SX 280SZ 284SX 284SZ 212S 212SX 21 2SZ 文章目录 光耦继电器(光电继电器)前言一、光耦继电器是什么二、光耦继电器的类型三、光电耦合器的应用总结前言 光耦继电器在工业控制、通讯、医疗设备、家电及汽车电子等领域得到广泛应…

Java学习网站

黑马: http://bbs.itheima.com/forum.php 考试网站: http://www.nowcoder.com/ 牛客网 比较专业的学习技术网站: http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/ 开源中国 : http://www.oschina.net/ 学习网站 : http://iteye.com/ ImportNew : http://www.im…

媒体查询响应式布局的几个尺寸_媒体查询实现响应式布局

本文主要介绍 media 查询的使用。通过媒体查询&#xff0c;在不同的屏幕尺寸下&#xff0c;可以设置不同的样式。以此&#xff0c;可以完美解决不同屏幕适配的问题。话不多说&#xff0c;先来看看效果&#xff1a;CSSmedia screen and (max-width: 400px) {.btn {background-co…

为什么说,我们可能是宇宙中唯一的智慧生命?

来源&#xff1a;原理我们在宇宙中是孤独的吗&#xff1f;这个问题可归结为&#xff1a;智慧究竟是自然选择的一种可能结果&#xff0c;还是一种不太可能的侥幸&#xff1f;显而易见的是&#xff0c;可能的事件可以经常发生&#xff1b;不太可能的事件很少发生&#xff0c;或者…

jeecg输入中文查询导表为空_学术利器—SCI期刊影响因子查询/中文核心期刊查询系统更新...

吐槽想起自己第一次投中文期刊的情形&#xff1a;当时学校最低要求是发表一篇核心级别的期刊论文&#xff0c;但是哪些期刊是核心期刊呢&#xff1f;完全不知道&#xff01;都怎么投稿呢&#xff1f;也完全不知道&#xff01;只能问问周围的同学或者师兄师姐。他们也就知道谁谁…

Python 学习随笔1

在一个列表中&#xff0c;找出重复数组的位置。 比如在列表name [1, 5, 8, 22, 56, 2, 8, 45, 7, 2, 35, 2, 486, 2, 152, 111, 265, 2, 2]中&#xff0c;找出2的位置。 方法1&#xff1a; 流程为&#xff1a; 找到第一个2的位置&#xff0c;然后在2之后的一个数后面切片&…

震撼!15项世界互联网领先科技成果发布,将对你的生活产生什么影响?

来源&#xff1a;浙江发布10月20日下午&#xff0c;世界互联网领先科技成果发布活动在乌镇互联网国际会展中心举行。今年6月&#xff0c;世界互联网大会组委会向全球互联网企业、科研机构、高等院校以及个人征集全球互联网领域的领先科技成果&#xff0c;收到了来自中国、美国、…

python 实例化父类对象_在Python中从现有超类实例化子类

所以我正在与第三方库进行交互,这会引发例外情况,但它基本上都会引发相同的异常(特别是suds.WebFault.但是,有可能从异常引发的数据中确定异常的确切类型.我希望将这个异常抽象为子类化这种类型的异常,即&#xff1a;from suds import WebFaultclass MoreSpecificError(WebFaul…

java执行查询postgresql得到中文乱码_Greenplum: 基于PostgreSQL的分布式数据库内核揭秘(上篇)...

关于作者姚延栋&#xff0c;山东大学本科&#xff0c;中科院软件所研究生。PostgreSQL中文社区委员&#xff0c;致力于Greenplum/PostgreSQL开源数据库产品、社区和生态的发展。一、数据库内核揭秘Greenplum 是最成熟的开源分布式分析型数据库(今年6月份预计发布的 Greenplum 6…

Openstack的镜像上传原理

openstack的horizon的上传镜像流程 通过html的form表单上传文件 先上传到horizon指定的临时目录&#xff0c;存储起来 通过glance-api请求接口 实际上glance-api也是提供了一个上传接口&#xff0c;由前面我们存储的临时目录&#xff0c;上传到glance-api的镜像创建接口; [root…

关于授予81项成果2019年度“吴文俊人工智能科学技术奖”的决定

来源&#xff1a;人工智能人物为加快实施国家创新驱动发展战略&#xff0c;深入贯彻《新一代人工智能发展规划》&#xff0c;更好地推进科教兴国、人才强国的政策落实&#xff0c;弘扬“尊重劳动、尊重知识、尊重人才、尊重创造”的良好风尚&#xff0c;通过推选优秀的智能科学…

mysql索引 和 es索引_MySQL索引 VS ElasticSearch索引

今天MySQL数据库栏目介绍MySQL索引与ElasticSearch索引的对比。前言这段时间在维护产品的搜索功能&#xff0c;每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。这甚至比在我本地使用 MySQL 通过主键的查询速度还快。为此我搜索了相关资料&#x…

开启httponly之后登陆失败_二次元约会模拟《少女都市》正式版登陆Steam 橘势大好...

《少女都市(Shoujo City)》于2018年1月在Steam开启了抢先测试&#xff0c;昨天发布了1.0正式版。这是一款专注于二次元和御宅文化的百合向约会模拟游戏&#xff0c;目前Steam好评率94%&#xff0c;自带简体中文。《少女城市》结合了美少女视觉小说与沙盒式的城市探索冒险&#…

科技/IT:2019 年 Q3 表现最佳和最差的企业

来源&#xff1a;云头条在2019年上半年经历稳步上涨之后&#xff0c;由于全球经济的不确定性和美中贸易紧张局势&#xff0c;2019年第三季度的股市如同过山车。道琼斯指数第三季度&#xff08;截至9月30日&#xff09;以26916.83点收盘&#xff0c;比2019年6月28日收盘价上涨1.…

python内部函数和比外部函数快_Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量...

假设我有一个函数&#xff0c;它在函数中的不同位置重复了大量代码&#xff0c;我可以执行以下操作&#xff1a;def foo():def bar():# do some stuffbar()# do some other stuffbar()我可以在bar内“读取”在foo范围内的变量&#xff0c;此外&#xff0c;如果需要编辑它们&…