【题解】

  最短路计数的模板题吧。。要把重边判掉。。

  

 1 #include<cstdio>
 2 #include<algorithm>
 3 #define N 2010
 4 #define rg register
 5 using namespace std;
 6 int n,m,tot=0,dis[N],pos[N],last[N],cnt[N],rec[N][N][11];
 7 struct edge{
 8     int to,pre,dis;
 9 }e[N*N];
10 struct heap{
11     int poi,dis;
12 }h[N];
13 inline int read(){
14     int k=0,f=1; char c=getchar();
15     while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();
16     while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();
17     return k*f;
18 }
19 inline void add(int x,int y,int z){
20     e[++tot]=(edge){y,last[x],z}; last[x]=tot;
21 }
22 inline void up(int x){
23     int fa;
24     while((fa=x>>1)&&h[fa].dis>h[x].dis){
25         swap(h[x],h[fa]); swap(pos[h[x].poi],pos[h[fa].poi]);
26         x=fa;
27     }
28 }
29 inline void down(int x){
30     int son;
31     while((son=x<<1)<=tot){
32         if(son<tot&&h[son+1].dis<h[son].dis) son++;
33         if(h[son].dis<h[x].dis){
34             swap(h[x],h[son]); swap(pos[h[x].poi],pos[h[son].poi]);
35             x=son;
36         }
37         else return;
38     }
39 }
40 inline void dijkstra(int x){
41     h[tot=pos[x]=cnt[x]=1]=(heap){x,dis[x]=0};
42     while(tot){
43         int now=h[1].poi; h[1]=h[tot--]; if(tot) down(1);
44         for(rg int i=last[now],to;i;i=e[i].pre)
45         if(dis[to=e[i].to]>=dis[now]+e[i].dis){
46             if(dis[to]==dis[now]+e[i].dis) cnt[to]+=cnt[now];
47             else{
48                 dis[to]=dis[now]+e[i].dis;
49                 cnt[to]=cnt[now];
50                 if(!pos[to]) h[pos[to]=++tot]=(heap){to,dis[to]};
51                 else h[pos[to]].dis=dis[to];
52                 up(pos[to]);
53             }
54         }
55     }
56 }
57 int main(){
58     n=read(); m=read();
59     for(rg int i=1;i<=n;i++) dis[i]=0X7f7f7f7f;
60     for(rg int i=1;i<=n;i++) cnt[i]=0;
61     for(rg int i=1;i<=m;i++){
62         int u=read(),v=read(),w=read();
63         if(!rec[u][v][w]) rec[u][v][w]++;
64         else continue;
65         add(u,v,w);
66     }
67     dijkstra(1);
68     if(cnt[n]) printf("%d %d\n",dis[n],cnt[n]);
69     else puts("No answer");
70     return 0;
71 }

View Code

转载于:https://www.cnblogs.com/DriverLao/p/8678831.html

洛谷 1608 路径统计相关推荐

  1. 刷题-洛谷-P1179 数字统计

    P1179 数字统计-C语言 1.题目 2.解题过程 结果: 代码: //洛谷 P1179 数字统计 #include <stdio.h> //#define MIN 1 //#defin ...

  2. 题解洛谷1179数字统计 记录问题

    文章目录 数字统计 一.思路1 二.思路二 优化 1.想法 2.代码 二.继续优化 不用类型转换 总结 数字统计 题目描述 请统计某个给定范围[L, R][L,R]的所有整数中,数字 22 出现的次数 ...

  3. 洛谷 P1176 路径计数2

    P1176 路径计数2 题目描述 一个N×N的网格,你一开始在(1, 1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N, N),即右下角有多少种方法. 但是这个问题太简单了, ...

  4. 洛谷——P1176 路径计数2

    P1176 路径计数2 题目描述 一个N \times NN×N的网格,你一开始在(1,1)(1,1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问到达(N,N)(N,N),即右下角有 ...

  5. 洛谷P1110 报表统计 multiset stl好题

    题目链接 一开始自己想的是multiset维护顺序结构,然后查找所有的值差最小时候找加入的当前点的前驱以及后继,然后查找相邻两个的就用线段树维护一个差最小值~,但是后来发现是全局的,直接再开一个mul ...

  6. 【洛谷】P1567 统计天数

    题目地址: https://www.luogu.com.cn/problem/P1567 题目描述: 炎热的夏日,KC非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化 ...

  7. 【暑期每日一题】洛谷(一)

    [暑期每日一题]洛谷 P1048 [NOIP2005 普及组] 采药 [暑期每日一题]洛谷 P1048 [NOIP2005 普及组] 采药_辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为 ...

  8. 洛谷 P4151 BZOJ 2115 [WC2011]最大XOR和路径

    //bzoj上的题面太丑了,导致VJ的题面也很丑,于是这题用洛谷的题面 题面描述 XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假. XOR 运算的真值表如 ...

  9. 洛谷 P3384 【模板】树链剖分-树链剖分(点权)(路径节点更新、路径求和、子树节点更新、子树求和)模板-备注结合一下以前写的题目,懒得写很详细的注释...

    P3384 [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节 ...

最新文章

  1. C/C++中memset()函数
  2. python映射类型-Python中的映射数据类型 dict
  3. .NET自动化测试工具链:Selenium+NUnit+ExtentReport
  4. CSS3 Filter的十种特效
  5. 深入Bert实战(Pytorch)----fine-Tuning 2
  6. parasoft Jtest 使用教程:清除错误消息与运行内置测试配置
  7. python语言适合哪些领域的计算问题数据处理和文本挖掘_R和Python中文本挖掘8大入门指南...
  8. php向数据库 插入图片,php-向/从MySQL数据库插入/查看图像
  9. 网站优化JS css压缩
  10. 第十三章 第六节 本章小结
  11. 好用的图片压缩工具Tinypng
  12. Node.js mm131图片批量下载爬虫1.00 iconv协助转码
  13. 基于android的个人收支财务管理,基于Android的个人财务管理系统的设计与实现.doc...
  14. 浙大PAT 1102
  15. 将WinPE安装至硬盘
  16. 前端面试题及答案(字节跳动)(二)
  17. 什么软件可以给图片去雾?分享三种图片去雾软件给你。
  18. 笔记本处理器排名_【笔记本】AMD YES,霸占性能排行榜前四
  19. 趣拿整合线上线下营销,解决新品推广痛点
  20. linux克隆步骤,CentOS克隆机器步骤,图文教程

热门文章

  1. *27.硬实时和软实时
  2. C++末尾匹配(C与C++解决)
  3. 全球首个AI设计药物进入人体试验阶段
  4. 在Labview中调用M文件(Matlab文件)
  5. 嵌入式开发调试学习与思考
  6. linux无显卡运行程序,Ubuntu中在应用程序菜单添加未显示的应用程序启动器
  7. php 模拟 https请求头,php 模拟 http 请求
  8. html没有css还有用吗,如果css足够强大了,你还会用编程的方式实现去实现css已有的功能吗?_html/css_WEB-ITnose...
  9. EL 表达式 JSTL 标签库
  10. 021_Form表单