#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. jmeter(四)参数化之CSV Data Set Config 和 CSVRead函数的区别

    jmeter的参数化可以添加配置元件CSV Data Set Config,也可以使用函数助手CSVRead.下面我就介绍一下2者的区别. 1.CSVRead函数,有2个参数值(路径和序号): 特点: ...

  2. git关联了无用的,取消关联,并重置gitignore

    一定要在首次上传git之前配置好 ignore文件假如操作问题不小心点了studio中可视化界面的git add . -f (强制的关联所有)这时候如果你看小git status 所有的文件都进行了远 ...

  3. python笔记(一)获取当前目录路径和文件

    一.获取当前路径 1.使用sys.argv[0] import sys print sys.argv[0]#输出#本地路径 2.os模块 import os print os.getcwd() #获取 ...

  4. 音乐app各部分笔记(一)

    7-11 播放器播放时间获取和更新 1.audio 有一个 ontimeupdate事件 播放过程中 随时触发 vue里面就是  @timeupdate   事件中有默认参数 e  通过e.targe ...

  5. vue购物车实战项01

    1. 关于挂载点 2.图片路径 这样的引入方式 是直接文件夹下myVue 3.import 不能用绝对路径 只能用相对路径  图片可以绝对路径 4.引入组件步骤 1.引入组件  @的含义在配置里面可以 ...

  6. java在进程启动和关闭.exe程序

    /** * @desc 启动进程 * @author zp * @date 2018-3-29 */ public static void startProc(String processName) ...

  7. liunx本地网卡流量监控

    作者:邓聪聪 公司网络异常,由于可监控设备有限,无法快速读取网络异常的设备,所以找到了这个办法,部署在服务端用以解决网络突发异常流量故障的查找! 环境:CentOS release 6.8 Linux ...

  8. ARX工程必须使用release模式编译

    在添加如下代码保证debug版本的arx文件也是使用MFC的release库   // 'DEBUG workaround' below prevents the MFC or ATL #includ ...

  9. ORACLE IMPDP导入报表数据已存在

    背景 搞了这么多年oracle,不论是开发和运维,自认为是都了解了,和dba差的只是熟练的问题,因为毕竟不是天天搞它.不过突然听说数据泵导入的功能,大吃一惊,好像有印象,以为是落后的,一查,竟然是先进 ...

  10. $Django 在线文本编辑器skindeditor

    简介 KindEditor是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富 ...