#include<bits/stdc++.h>
#include<queue>
using namespace std;
#define maxn 300005
#define ll long long
struct qnode{
ll v,c,id;
qnode(){}
qnode(ll v,ll c,ll id):v(v),c(c),id(id){}
bool operator<(const qnode&r)const{
return c>r.c;
}
};
struct Edge{ll to,nxt,w,id;}edge[maxn<<];
ll n,m,k,head[maxn],tot,vis[maxn],dist[maxn];
void init(){
tot=;
memset(head,-,sizeof head);
}
void addedge(ll u,ll v,ll w,ll id){
edge[tot].to=v;edge[tot].nxt=head[u];edge[tot].id=id;edge[tot].w=w;head[u]=tot++;
} priority_queue<qnode>pq;
vector<ll>vec;
void dijkstra(ll s){
memset(vis,,sizeof vis);
memset(dist,0x3f,sizeof dist);
dist[s]=;
pq.push(qnode(s,,));
while(!pq.empty()){
qnode tmp=pq.top();
pq.pop();
ll u=tmp.v;
if(vis[u])continue;
vis[u]=;
vec.push_back(tmp.id);
if(vec.size()==k+)return;
for(int i=head[u];i!=-;i=edge[i].nxt){
ll v=edge[i].to,cost=edge[i].w;
if(vis[v])continue;
if(dist[v]>dist[u]+cost){
dist[v]=dist[u]+cost;
pq.push(qnode(v,dist[v],edge[i].id));
}
}
}
} int main(){
init();
int u,v,w;
cin>>n>>m>>k;
for(int i=;i<=m;i++){
cin>>u>>v>>w;
addedge(u,v,w,i);
addedge(v,u,w,i);
}
dijkstra(); k=min(k,n-);
cout<<k<<endl;
for(int i=;i<=k;i++)
cout<<vec[i]<<" ";
return ;
}

cf1076d 贪心最短路的更多相关文章

  1. [CSP-S模拟测试]:午餐(贪心+最短路)

    题目传送门(内部题115) 输入格式 第一行两个正整数$n,m$. 接下来$m$行,每行$4$个正整数$u_j,v_j,L_j,R_j$. 接下来一行$n$个数,若第$i$个数为$1$,则$i$号同学 ...

  2. ZOJ 3946 Highway Project 贪心+最短路

    题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3946 题解: 用dijkstra跑单元最短路径,如果对于顶点v,存 ...

  3. CF 360 E Levko and Game —— 贪心+最短路

    题目:http://codeforces.com/contest/360/problem/E 首先,每条边不是选 \( l[i] \) 就是选 \( r[i] \): 做法就是先把边权都设成 \( r ...

  4. Codeforces 360E 贪心 最短路

    题意及思路:https://blog.csdn.net/huanghongxun/article/details/49846927 在假设所有边都是最大值的情况下,如果第一个人能比第二个人先到,那就缩 ...

  5. WC2019游记 && 课件

    WC2019 游记 课件 wc2019.zip_免费高速下载|百度网盘-分享无限制 提取码: un6z day 0 打飞机去广州... 在飞机上刷了爱乐(le)之城, 相当好看... 广二好大! 哈三 ...

  6. BZOJ刷题指南(转)

    基础(65) 巨水无比(4):1214.3816:2B题:1000A+B:2462:输出10个1 模拟/枚举/暴力(15):4063傻子模拟:1968小学生暴力:1218前缀和暴力:3856读英文:4 ...

  7. 【CF1076D】Edge Deletion 最短路+贪心

    题目大意:给定 N 个点 M 条边的无向简单联通图,留下最多 K 条边,求剩下的点里面从 1 号顶点到其余各点最短路大小等于原先最短路大小的点最多怎么构造. 题解:我们可以在第一次跑 dij 时直接采 ...

  8. Codeforces Round #303 (Div. 2) E. Paths and Trees 最短路+贪心

    题目链接: 题目 E. Paths and Trees time limit per test 3 seconds memory limit per test 256 megabytes inputs ...

  9. Codeforces 1076D Edge Deletion 【最短路+贪心】

    <题目链接> 题目大意: n个点,m条边的无向图,现在需要删除一些边,使得剩下的边数不能超过K条.1点为起点,如果1到 i 点的最短距离与删除边之前的最短距离相同,则称 i 为 " ...

随机推荐

  1. mysql 8.0 ~ 存储和账户

    一 简介:关于存储数据文件的改进二 数据文件:   1合并了存储数据库对象信息的事务性数据字典       1 相关文件等存储引擎层存储元数据文件已消失,只有ibd文件,元数据存储在数据字典表    ...

  2. Django学习手册 - 连接mysql数据库

    版本问题: 首先确认django.msql.python版本是统一支持 当前所用的版本信息: Django setting.py 配置 替换之前的DATABASES 配置: DATABASES = { ...

  3. python正则下载图片

    import urllib.request import re # 打开图片路径 def open_url(url): #设置请求路径 req = urllib.request.Request(url ...

  4. 必须要学会webpack打包,并到特别精通的程度

    必须要学会webpack打包,并到特别精通的程度

  5. Nand

    1.boolean logic 常用的boolean logic有AND OR NOT,其性质如下 事实上,可用AND和NOT来表示OR x or y = NOT(NOT(x) AND NOT(y)) ...

  6. 用ARX自定义实体

      本文介绍了构造自定义实体的步骤.必须继承的函数和必须注意的事项 1.新建一个从AcDbEntity继承的类,如EntTest,必须添加的头文件: "stdarx.h",&quo ...

  7. python中input和raw_input函数

    python input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入. raw_input() 将所有输入作为字符串看待,返回字符串类型.而 input() 在 ...

  8. SIFT+BOW 实现图像检索

    原文地址:https://blog.csdn.net/silence2015/article/details/77374910 本文概述 图像检索是图像研究领域中一个重要的话题,广泛应用于医学,电子商 ...

  9. Mudo C++网络库第五章学习笔记

    高效的多线程日志 日志(logging)有两个意思: 诊断日志(diagnostic log), 常用日志库提供日志功能; 交易日志(transaction log), 用于记录状态变更, 通过回放日 ...

  10. CURL错误代码及含义

    https://curl.haxx.se/libcurl/c/libcurl-errors.html NAME libcurl-errors - error codes in libcurl DESC ...