CF449B Jzzhu and Cities
5 5 3
1 2 1
2 3 2
1 3 3
3 4 4
1 5 5
3 5
4 5
5 5
2
2 2 3
1 2 2
2 1 3
2 1
2 2
2 3
2
思路 :
剪完图后,记录一个最小边权的个数,如果从1到v的距离有多个,那么就可以考虑删除v
代码
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#define int long long
#define maxn 1100000
using namespace std ;
struct dy{int x , y , z , next ;
}a[maxn] ;
int head[maxn] , vis[maxn] , dis[maxn] ;
int n , m ,k ;
int U[maxn] , V[maxn] ,in[maxn] ;
typedef pair<int,int>pa ;
priority_queue<pa,vector<pa>,greater<pa> >q ;
int t ;
void add(int x , int y , int z) {a[++t].x = x ;a[t].y = y ;a[t].z = z ;a[t].next = head[x] ;head[x] = t ;
}
void dij(int s) {memset(dis,0x3f,sizeof(dis)) ;memset(vis,0,sizeof(vis)) ;dis[s] = 0 , vis[s] = 0 ;q.push(make_pair(dis[s],s)) ;while(!q.empty()) {int u = q.top().second ;q.pop() ;if(vis[u]) continue ;vis[u] = 1 ;for(int i = head[u] ; i ; i = a[i].next ) {int v = a[i].y ;if(dis[v] > dis[u] + a[i].z ) {dis[v] = dis[u] + a[i].z ;in[v] = 1 ;q.push(make_pair(dis[v],v)) ;}else if(dis[v] == dis[u] + a[i].z) {in[v] ++ ;}}}
}
signed main () {scanf("%lld%lld%lld",&n,&m,&k) ;while(m --) {int x , y , z ;scanf("%lld%lld%lld",&x,&y,&z) ;add(x,y,z) ;add(y,x,z) ;}for(int i = 1 ; i <= k ; i ++) {scanf("%lld%lld",&U[i],&V[i]) ;add(1,U[i],V[i]) ;add(U[i],1,V[i]) ;}dij(1) ;int ans = 0 ;for(int i = 1 ; i <= k ; i ++) {if(dis[U[i]] < V[i] ) ans ++ ;else {if(dis[U[i]] == V[i] && in[U[i]] > 1) ans ++ , in[U[i]] -- ;}}printf("%lld\n",ans) ;return 0 ;
}
CF449B Jzzhu and Cities相关推荐
- CF449B Jzzhu and Cities 迪杰斯特拉最短路算法
CF449B Jzzhu and Cities 其实这一道题并不是很难,只是一个最短路而已,请继续看我的题解吧~(^▽^) AC代码: #include<bits/stdc++.h> #d ...
- CF449B Jzzhu and Cities(Dijkstra)
设每个点到1的距离为dis[x]dis[x]dis[x],特殊边为(1,vi,wi)(1,v_i,w_i)(1,vi,wi) 1.wi>dis[vi]w_i>dis[v_i]wi&g ...
- CodeForces:749(div1)750(div2)
文章目录 前言 CF450A Jzzhu and Children Description\text{Description}Description Solution\text{Solution}So ...
- linux jar 运行 停止,[转] Linux中启动和停止jar包的运行
脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar & #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...
- czl蒻蒟的OI之路10、11、12
好久没有发微博了表示自己也很绝望啊今天来个三连击 XJOI奋斗群蒻蒟群群赛11 RANK排名11 T1The Wall WA一次后AC 题意 分析过程 给出题解 T2Maximal Area Quad ...
- CCPC-Wannafly Summer Camp 2019 全记录
// 7.19-7.29 东北大学秦皇岛校区十天训练营,题目都挂在了Vjudge上.训练期间比较忙,没空更博总结,回来继续补题消化. Day1 这天授课主题是简单图论,节奏挺好,wls两小时理完图论里 ...
- 1013 Battle Over Cities(并查集解法)
关于背景的介绍见1013 Battle Over Cities(图的DFS解法) DFS就是不算特定结点后数连通子图的总数,再减一.我想着那么并查集就是数不算特定节点后,集合元素(根)的个数.但是我弄 ...
- R语言ggplot2进行特定国家或者地区的地图可视化、在地图上标出所有首府城市所在地(plot the locations of the capital cities)
R语言ggplot2进行特定国家或者地区的地图可视化.在地图上标出所有首府城市所在地(plot the locations of the capital cities) 目录
- HDU——2874 Connections between cities
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
最新文章
- python3 tkinter电子书_python3 tkinter实现添加图片和文本
- 2018五大人工智能趋势,你知道多少?
- barrier linux,Linux系统上启用barrier?
- 利用TaskCompletionSource将EAP转换成TAP
- UPS技术的“前世今生”【基础篇.PPT】
- ThinkPHP redirect 页面重定向使用详解与实例
- java 文件夹存在文件_Java判断是否存在文件和文件夹
- 关于Eureka的几个问题
- Linux下的高级文件权限ACL
- 为什么前端H5工程师工资那么高?
- 【示波器专题】示波器探头的原理和分类
- DCDC电源负载瞬态响应分析
- python函数调用的五种方式
- GIS开发中常用几何算法原理图解
- 周鸿祎:论互联网大佬的编程能力,我能排进前三!
- HJ100 等差数列
- 安装finalshell 高级版(绿色版)
- 高一凡-数据结构第2章-线性表
- 饮料自动售货机5角的c语言,自动售货机图形拟系统需求分析与设计报告完成稿.doc...
- 对传输线阻抗的一些认识