HDU 1535
2024-08-26 09:56:56
http://acm.hdu.edu.cn/showproblem.php?pid=1535
水题
单向图,从1到P所有点,再从所有点回到1,问最小花费
先求一遍1的最短路,然后反向建图,再求一遍1的最短路
#include <iostream>
#include <queue>
using namespace std ;
const int INF=0xfffffff ;
struct node{
int s,t,v,nxt ;
}e[] ;
int n,cnt,head[],vis[],dis[] ;
int rs[],rt[],rv[] ;
void add(int s,int t,int v)
{
e[cnt].s=s ;
e[cnt].t=t ;
e[cnt].v=v ;
e[cnt].nxt=head[s] ;
head[s]=cnt++ ;
}
void spfa(int s)
{
for(int i= ;i<=n ;i++)
dis[i]=INF ;
dis[s]= ;
memset(vis,,sizeof(vis)) ;
vis[s]= ;
queue <int> q ;
q.push(s) ;
while(!q.empty())
{
int u=q.front() ;
q.pop() ;
vis[u]= ;
for(int i=head[u] ;i!=- ;i=e[i].nxt)
{
int tt=e[i].t ;
if(dis[tt]>dis[u]+e[i].v)
{
dis[tt]=dis[u]+e[i].v ;
if(!vis[tt])
{
vis[tt]= ;
q.push(tt) ;
}
}
}
}
}
int main()
{
int t ;
scanf("%d",&t) ;
while(t--)
{
cnt= ;
memset(head,-,sizeof(head)) ;
int q ;
scanf("%d%d",&n,&q) ;
for(int i= ;i<q ;i++)
{
scanf("%d%d%d",&rs[i],&rt[i],&rv[i]) ;
add(rs[i],rt[i],rv[i]) ;
}
int ans= ;
spfa() ;
for(int i= ;i<=n ;i++)
ans+=dis[i] ;
cnt= ;
memset(head,-,sizeof(head)) ;
for(int i= ;i<q ;i++)
add(rt[i],rs[i],rv[i]) ;
spfa() ;
for(int i= ;i<=n ;i++)
ans+=dis[i] ;
printf("%d\n",ans) ;
}
return ;
}
最新文章
- .NET Mvc中ViewBag、ViewData、TempData如何使用
- ActiveMQ的介绍及使用实例.
- Hadoop等软件常见运行问题及解决办法
- js,jquery获取浏览器信息
- ( 译、持续更新 ) JavaScript 上分小技巧(四)
- 0day漏洞是什么意思啊?
- Linux下Memcached-1.4.10安装
- IOS webView快照
- 8-11-Exercise
- CImageList使用简要说明
- HttpURLConnection传JSON数据
- jq之简单的表单验证
- HMC5883L地磁传感器驱动
- 迷宫问题-POJ 3984
- [mysql] 修复问题表Table &#39;.xxxx&#39; is marked as crashed and should be repaired
- C++ Addon Async 异步机制
- HDU 1160
- 20190312 Windows安装Kafka
- makefile中的shell编程注意点
- opencv-python教程学习系列6-用滑动条做调色板
热门文章
- Mybatis的CRUD案例
- mariadb10.1.13GTID实现主从复制
- C题:A Water Problem(dp||搜索)
- Mist 转移默认区块存储位置方法
- sqlite的事务和锁,很透彻的讲解 【转】
- CentOS6.5下Cloudera安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
- 20145314郑凯杰《网络对抗技术》可选实验 shellcode注入与Return-to-libc攻击实验
- 20145311王亦徐 实验三 ";敏捷开发与XP实践";
- target=&#39;_blank&#39; 安全漏洞
- Spring boot错误处理以及定制错误页面