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相关推荐

  1. CF449B Jzzhu and Cities 迪杰斯特拉最短路算法

    CF449B Jzzhu and Cities 其实这一道题并不是很难,只是一个最短路而已,请继续看我的题解吧~(^▽^) AC代码: #include<bits/stdc++.h> #d ...

  2. 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 ...

  3. CodeForces:749(div1)750(div2)

    文章目录 前言 CF450A Jzzhu and Children Description\text{Description}Description Solution\text{Solution}So ...

  4. linux jar 运行 停止,[转] Linux中启动和停止jar包的运行

    脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar &       #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...

  5. czl蒻蒟的OI之路10、11、12

    好久没有发微博了表示自己也很绝望啊今天来个三连击 XJOI奋斗群蒻蒟群群赛11 RANK排名11 T1The Wall WA一次后AC 题意 分析过程 给出题解 T2Maximal Area Quad ...

  6. CCPC-Wannafly Summer Camp 2019 全记录

    // 7.19-7.29 东北大学秦皇岛校区十天训练营,题目都挂在了Vjudge上.训练期间比较忙,没空更博总结,回来继续补题消化. Day1 这天授课主题是简单图论,节奏挺好,wls两小时理完图论里 ...

  7. 1013 Battle Over Cities(并查集解法)

    关于背景的介绍见1013 Battle Over Cities(图的DFS解法) DFS就是不算特定结点后数连通子图的总数,再减一.我想着那么并查集就是数不算特定节点后,集合元素(根)的个数.但是我弄 ...

  8. R语言ggplot2进行特定国家或者地区的地图可视化、在地图上标出所有首府城市所在地(plot the locations of the capital cities)

    R语言ggplot2进行特定国家或者地区的地图可视化.在地图上标出所有首府城市所在地(plot the locations of the  capital cities) 目录

  9. HDU——2874 Connections between cities

    Connections between cities Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

最新文章

  1. python3 tkinter电子书_python3 tkinter实现添加图片和文本
  2. 2018五大人工智能趋势,你知道多少?
  3. barrier linux,Linux系统上启用barrier?
  4. 利用TaskCompletionSource将EAP转换成TAP
  5. UPS技术的“前世今生”【基础篇.PPT】
  6. ThinkPHP redirect 页面重定向使用详解与实例
  7. java 文件夹存在文件_Java判断是否存在文件和文件夹
  8. 关于Eureka的几个问题
  9. Linux下的高级文件权限ACL
  10. 为什么前端H5工程师工资那么高?
  11. 【示波器专题】示波器探头的原理和分类
  12. DCDC电源负载瞬态响应分析
  13. python函数调用的五种方式
  14. GIS开发中常用几何算法原理图解
  15. 周鸿祎:论互联网大佬的编程能力,我能排进前三!
  16. HJ100 等差数列
  17. 安装finalshell 高级版(绿色版)
  18. 高一凡-数据结构第2章-线性表
  19. 饮料自动售货机5角的c语言,自动售货机图形拟系统需求分析与设计报告完成稿.doc...
  20. 对传输线阻抗的一些认识

热门文章

  1. 完形填空(动态规划)
  2. C# 绘制Word图形、组合图形
  3. 16进制转2进制的代码C语言
  4. flask程序部署到heroku平台的过程
  5. html对话框特效,基于html5手机移动端对话框特效
  6. html5腾讯地图api应用
  7. 基于AR模型的功率谱matlab,基于AR模型法功率谱估计的Matlab实现
  8. C++如何禁止掉对象的复制操作
  9. 莫尔斯电码对照表_使用莫尔斯电码编码纯文本
  10. 电信交换(电话交换机)