luogu P1342 请柬
题目描述
在电视时代,没有多少人观看戏剧表演。Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片。他们已经打印请帖和所有必要的信息和计划。许多学生被雇来分发这些请柬。每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天,邀请人们参与。
这里的公交系统是非常特殊的:所有的线路都是单向的,连接两个站点。公共汽车离开起始点,到达目的地之后又空车返回起始点。学生每天早上从总部出发,乘公交车到一个预定的站点邀请乘客。每个站点都被安排了一名学生。在一天结束的时候,所有的学生都回到总部。现在需要知道的是,学生所需的公交费用的总和最小是多少。
输入输出格式
输入格式:
第1行有两个整数n、m(1<=n,m<=1000000),n是站点的个数,m是线路的个数。
然后有m行,每行描述一个线路,包括3个整数,起始点,目的地和价格。
总部在第1个站点,价钱都是整数,且小于1000000000。
输出格式:
输出一行,表示最小费用。
输入输出样例
4 6
1 2 10
2 1 60
1 3 20
3 4 10
2 4 5
4 1 50
210
说明
【注意】
此题数据规模较大,需要使用较为高效的算法,此题不设小规模数据分数。
建反向边,两边最短路,最水题,没有之一
#include<cstdio>
#include<cstring>
using namespace std;
const int N=,INF=0x3f3f3f3f; int n,m,cnt,x[N],y[N],z[N],H[N<<],Q[N+];
long long Ans,Dist[N];
bool vis[N];
struct Edge
{
int to,val,nxt;
}e[N<<]; void read(int &now)
{
now=;char c=getchar();
while(c>''||c<'')c=getchar();
while(c>=''&&c<='')now=(now<<)+(now<<)+c-'',c=getchar();
} void AddEdge(int u,int v,int w)
{
e[++cnt].to = v;
e[cnt].val = w;
e[cnt].nxt = H[u];
H[u] = cnt;
} void SPFA(int x)
{
memset(vis,,sizeof vis);
memset(Dist,INF,sizeof Dist);
vis[x]=;
Dist[x]=;
int h=,t=;
Q[h]=;
while(h<t)
{
int cur=Q[h++];
vis[cur]=;
for(int i=H[cur];i;i=e[i].nxt)
{
int to=e[i].to,v=e[i].val;
if(Dist[to]>Dist[cur]+v)
{
Dist[to]=Dist[cur]+v;
if(!vis[to])
Q[t++]=to,vis[to]=;
}
}
}
} int main()
{
read(n);read(m);
for(int i=;i<=m;++i)
read(x[i]),read(y[i]),read(z[i]),AddEdge(x[i],y[i],z[i]);
SPFA();
for(int i=;i<=n;++i)
Ans+=Dist[i];
memset(H,,sizeof H);
cnt=;
for(int i=;i<=m;++i)
AddEdge(y[i],x[i],z[i]);
SPFA();
for(int i=;i<=n;++i)
Ans+=Dist[i];
printf("%lld",Ans);
return ;
}
luogu P1342 请柬的更多相关文章
- Luogu P1342 请柬 题解
差不多是Dijkstra的裸题吧... 这道题可以分为来回两个阶段. 去的时候很简单,直接用一次Dijkstra,然后统计答案. 回来的时候就有些巧妙了,虽然表面上是每个点回到起点,但是何尝不可将其看 ...
- LUOGU P1342 请柬(最短路)
传送门 解题思路 又是一道语文题,弄清楚题意之后其实就能想出来了,从1跑一遍最短路,把$dis[n]$加入答案.在建个反图跑一遍最短路,把$dis[n]_$加入最短路就行了.第一遍是去的时候,第二遍是 ...
- 洛谷P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- 洛谷——P1342 请柬
P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...
- 洛谷 P1342 请柬 最短路+Dijkstra算法
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P1342 请柬 题目描述 在电视时代,没有多少人观看戏 ...
- P1342 请柬
最近一直在做最短路......所以今天就再做一道最短路吧.... 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片 ...
- 洛谷—— P1342 请柬
https://www.luogu.org/problemnew/show/1342 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤 ...
- 洛谷P1342 请柬(SPFA)
To 洛谷.1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计 ...
- 洛谷 P1342 请柬(SPFA)
题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被雇来分发这些请 ...
随机推荐
- 运用模逆运算(同余方程)来解决Matlab课上的一道思考题
一道Matlab编程题 & 暴力解法 Matlab课上老师出了这样一道题: 一个篮子有K个鸡蛋: 2个2个拿剩1个: 3个3个全部拿完: 4个4个拿剩1: 5个5个拿剩4个: 6个6个拿剩3个 ...
- Bootstrap 响应式表格
响应式表格 通过把任意的 .table 包在 .table-responsive class 内,您可以让表格水平滚动以适应小型设备(小于 768px).当在大于 768px 宽的大型设备上查看时,您 ...
- shell脚本,计算1+3+5....100等于多少?
[root@localhost wyb]# cat unevenjia.sh #!/bin/bash #从1+++...100的结果 i= count=$1 $count` do sum=$(($su ...
- MySql压缩版安装及避免1055错误和msvcp120.dll丢失
MySql压缩版安装及避免1055错误和msvcp120.dll丢失 MySQL压缩版的安装快速方便,5.7及最新的8版本安装方式大致相同. 在使用group by分组时,可能会遇到1055错误. 另 ...
- Objective-C urlEncode urlDecode
@interface NSString (stringByDecodingURLFormat) - (NSString *)stringByDecodingURLFormat; - (NSString ...
- keypoint && DMatch
下面单独介绍KEYPOINT 与DMatch的内在联系 std::vector<cv::Point2f> points1, points2; for (std::vector<cv: ...
- Handler处理器和自定义Opener
Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...
- PYDay1-洗剑
学习语言的阶段: 第一阶段:所有东西都是新的::一个月 第二阶段:开始懂一些::一个月 第三阶段:感觉自己是不可战胜的:第三~第四个月 第四阶段:突然感觉什么都不知道,开发是无止境的::培训阶段不会遇 ...
- Cookie测试的测试点
1.禁止使用Cookie:设置浏览器禁止使用Cookie,访问网页后,检查存放Cookie文件中未生成相关文件: 2.Cookie寻出路径:按照操作系统和浏览器对Cookie存放路径的设置,检查存放路 ...
- 【LeetCode】String Without AAA or BBB(不含 AAA 或 BBB 的字符串)
这道题是LeetCode里的第984道题. 题目要求: 给定两个整数 A 和 B,返回任意字符串 S,要求满足: S 的长度为 A + B,且正好包含 A 个 'a' 字母与 B 个 'b' 字母: ...