codeforces 303 div2 E
赤裸裸的最短路,需要注意下枚举过程就好了。直接贴上别人的代码,发现他的代码挺符合我的风格,以后就这样写了。
#include <bits/stdc++.h> 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[]; int n,m,u;
int f[];
int ed[];
long long dis[];
vector<int> ans;
const long long inf = (long long)*; int main(){
cin >>n >>m;
for (int i=;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=;i<=n;i++) dis[i]=inf;
//for (int i=1;i<=n;i++) cout<<dis[i]<<endl;
dis[u]=;
while (!q.empty()){
int now = q.front();
q.pop();
for (int i=;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=;
for (int i=;i<=n;i++)
if (f[i]!=) cnt+=ed[f[i]],ans.push_back(f[i]);
sort(ans.begin(),ans.end());
cout << cnt<<endl;
for(int i=;i<ans.size();i++){
if (i>) cout<<" ";
cout << ans[i];
}
return ;
}
codeforces 303 div2 E的更多相关文章
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- 【Codeforces #312 div2 A】Lala Land and Apple Trees
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
- Codeforces #263 div2 解题报告
比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...
- codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...
- codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...
随机推荐
- SpringBoot 2.x (8):模板引擎
SpringBoot中有很多的starter:本质是多个JAR包集合 比如我们常用的: <dependency> <groupId>org.springframework.bo ...
- 初用emmet
下载emmet的pspad插件emmet.js.复制到pspad目录下的 script\JScript 文件夹. 输入 ul#nav>li.item$*4>{Item $} 但是没反应. ...
- vijos 1053 Easy sssp
描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的带权有向图. 要求你写一个程序, 判断这个有向图中是否存在负权回路. 如果从一 ...
- 【opencv】imread CV_LOAD_IMAGE_GRAYSCALE
转灰度图的操作很多,但是opencv中的CV_LOAD_IMAGE_GRAYSCALE的具体操作为: gray = 0.299 * r + 0.587 * g + 0.114 * b 然后,小数点部分 ...
- SQLite -创建表
SQLite -创建表 SQLite CREATE TABLE语句用于创建一个新表在任何给定的数据库.创建一个基本表包括表命名和定义其列,每列的数据类型 语法: CREATE TABLE语句的基本语法 ...
- System类与两种输入流
1.System类对I/O的支持系统输出System.out.println 是利用了I/O流的模式完成的.实际是打印流PrintStream对象 System类中定义了三个操作的常量 1.标准/系统 ...
- mybatis中存储过程的调用
dao层 // 调用存储过程 void callProcedureGrantEarnings(@Param("params") Map<String,Object> p ...
- feign 负载均衡熔断器
feign:和zuul配合进行负载均衡. 注解的含义: @EnableDiscoveryClient 声明它是一个资源服务端,即可以通过某些接口调用一些资源: @EnableFeignClients ...
- 安装 配置 IIS
一 .找到 控制面板 ------ 在程序和功能 -----打开或关闭window 功能 :这里可能要等一下 才会显示 . 二‘.找到 Internet信息服务 ,勾选大部分如下图:点击 ...
- DedeCMS文章标题长度最全修改方法
有时候DedeCMS首页或者其他页面不能全部展示文章标题,造成读者阅读体验差.一般来说标题精简.概括性强.有本文关键词就是一个好标题.写软文不比写“作文”,也不是论坛的标题党,软文是用来做排名的,主要 ...