codeforces 303 div2 E
赤裸裸的最短路,需要注意下枚举过程就好了。直接贴上别人的代码,发现他的代码挺符合我的风格,以后就这样写了。
using namespace std;
struct node{
int y,z,id;
node(){}
node(int y,int z,int id):y(y),z(z),id(id){}
};
vector<node> e[300100];
int n,m,u;
int f[300100];
int ed[300100];
long long dis[300100];
vector<int> ans;
const long long inf = (long long)300100*1000000000;
int main(){
cin >>n >>m;
for (int i=1;i<=m;i++){
int x,y,z;
cin >> x>>y>>z;
ed[i]=z;
e[x].push_back(node(y,z,i));
e[y].push_back(node(x,z,i));
}
cin >> u;
queue<int> q;
q.push(u);
for (int i=1;i<=n;i++) dis[i]=inf;
//for (int i=1;i<=n;i++) cout<<dis[i]<<endl;
dis[u]=0;
while (!q.empty()){
int now = q.front();
q.pop();
for (int i=0;i<e[now].size();i++){
int v = e[now][i].y;
if (dis[now]+e[now][i].z<dis[v] || dis[now]+e[now][i].z==dis[v] && e[now][i].z<ed[f[v]]){
f[v]=e[now][i].id;
dis[v]=dis[now]+e[now][i].z;
q.push(v);
}
}
}
long long cnt=0;
for (int i=1;i<=n;i++)
if (f[i]!=0) cnt+=ed[f[i]],ans.push_back(f[i]);
sort(ans.begin(),ans.end());
cout << cnt<<endl;
for(int i=0;i<ans.size();i++){
if (i>0) cout<<" ";
cout << ans[i];
}
return 0;
}
转载于:https://www.cnblogs.com/acvc/p/4517508.html
codeforces 303 div2 E相关推荐
- codeforces#320(div2) D Or Game 贪心
codeforces#320(div2) D "Or" Game 贪心 D. "Or" Game time limit per test 2 seconds ...
- codeforces 628.div2
# Codeforces 628.div2 A. EhAb AnD gCd B. CopyCopyCopyCopyCopy C. Ehab and Path-etic MEXs D. Ehab the ...
- codeforces#324(div2) E. Anton and Ira 贪心
codeforces#324(div2) E. Anton and Ira 贪心 E. Anton and Ira time limit per test 1 second memory limit ...
- codeforces 712 div2 ABC
codeforces 712 div2 ABC A. Déjà Vu A palindrome is a string that reads the same backward as forward. ...
- codeforces round div2,3周赛补题计划(从开学到期末)
1. 本学期场次 从2020.09.19-2021.01.18,一共18周. 题号 场次 日期 备注 1475 Codeforces Round #697 (Div. 3) 1.25 1474 Cod ...
- Codeforces#371 Div2
这是一场非常需要总结的比赛,交了3题,最后终测的时候3题全部没过,一下掉到了绿名,2333 Problem A 题意:给定区间[l1,r1],[l2,r2],然后给定一个整数k,求区间当中相交的元素, ...
- 【Codeforces #130 Div2】Solutions
[208A Dubstep] http://codeforces.ru/problemset/problem/208/A 题目大意:一个句子被添加了若干"WUB",问原句. 将W ...
- 付忠庆的练习小笔记-Codeforces #277 Div2 C
原题链接 http://codeforces.com/contest/486/problem/C 这个C题显然更水一些 步数可以分为两种 上下一种 左右一种 总步数最小 = 上下最小+左右最小 先讨论 ...
- 付忠庆的练习小笔记-Codeforces #276 Div2 C
原题链接 http://codeforces.com/contest/485/problem/C 题意:给出一个区间 l~r 求这个区间内的数中转换成2进制含'1'最多的数,若有多组解,则输出最小的那 ...
最新文章
- https refused 解决方法
- OpenCV2.4.13在VS2012环境的debug模式下的链接库输入配置的文件目录
- AndroidStudio报错:GradleSyncIssues-Could not install Gradle distribution from...
- AbstractListView源码分析6
- bzoj4639 博士的选取器
- ActiveMQ 依赖JDK版本
- windows服务器远程关机或重启
- IT从业者创业公司生存指南:创业后记 ---- 百感交集的过来人
- 常用网络测试的命令的实验报告计算机网络,实验一常用网络命令的使用实验报告-20210409133504.docx-原创力文档...
- python3下载远程代码并执行
- DNS解析、智能DNS原理及CDN应用和原理
- VBA编程_Selection总结
- 【2010.10.13 10:00 携程校招笔试】买可乐(50%)、派司机
- C++ Primer Plus学习(十三)——代码重用(has-a)
- Excel打印不完整
- angular报$injector / unpr的错误
- windows 录屏软件
- IP反查网站,ip反查接口,旁站查询接口大全,通过IP查域名汇总
- 相似对角化的意义(转载)
- FATFS 移植和配置分析
热门文章
- blockUI应用到Asp.Net页面时服务器控件(Button等)失效的问题
- 转载-程序员编程技术迅速提高的终极攻略
- 哪些要素会让咱们呈现抑郁症的病症
- iOS开发出错whose view is not in the window hierarchy!的解决
- Bzoj 3289: Mato的文件管理 莫队,树状数组,逆序对,离散化,分块
- (一)FlexViewer之整体框架解析
- JQuery. Parse XML children recursively. How? - Stack Overflow
- padding和卷积的区别_TensorFlow笔记1——20.CNN卷积神经网络padding两种模式SAME和VALID...
- 深度学习之 FPN (Feature Pyramid Networks)
- scrapy框架_Python学习之Scrapy框架