题意:给出n个点m条单向边,求最短路的道路条数和比最短路大1的道路条数的和。

  1. /*
  2. 用Dijkstra更新2*n次,来更新出所有点的最短路和次短路,顺便更新方案数。
  3. */
  4. #include<cstdio>
  5. #include<iostream>
  6. #include<cstring>
  7. #define N 1010
  8. #define INF 500000000
  9. using namespace std;
  10. int head[N],vis[N][],dis[N][],f[N][],n,m,s,t;
  11. struct node{
  12. int v,pre,t;
  13. };node e[N*];
  14. void add(int i,int x,int y,int z){
  15. e[i].v=y;
  16. e[i].t=z;
  17. e[i].pre=head[x];
  18. head[x]=i;
  19. }
  20. void Dij()
  21. {
  22. dis[s][]=;f[s][]=;
  23. for(int T=;T<=n*;T++){
  24. int minn=INF,pos=,flag;
  25. for(int i=;i<=n;i++){
  26. if(dis[i][]<minn&&!vis[i][]){
  27. minn=dis[i][];pos=i;flag=;
  28. }
  29. if(dis[i][]<minn&&!vis[i][]){
  30. minn=dis[i][];pos=i;flag=;
  31. }
  32. }
  33. if(!pos)break;
  34. vis[pos][flag]=;
  35. for(int i=head[pos];i;i=e[i].pre){
  36. int v=e[i].v;
  37. if(minn+e[i].t<dis[v][]){
  38. dis[v][]=dis[v][];
  39. f[v][]=f[v][];
  40. dis[v][]=minn+e[i].t;
  41. f[v][]=f[pos][flag];
  42. }
  43. else if(minn+e[i].t==dis[v][]){
  44. f[v][]+=f[pos][flag];
  45. }
  46. else if(minn+e[i].t<dis[v][]){
  47. dis[v][]=minn+e[i].t;
  48. f[v][]=f[pos][flag];
  49. }
  50. else if(minn+e[i].t==dis[v][]){
  51. f[v][]+=f[pos][flag];
  52. }
  53. }
  54. }
  55. if(dis[t][]==dis[t][]-)
  56. printf("%d\n",f[t][]+f[t][]);
  57. else
  58. printf("%d\n",f[t][]);
  59. }
  60. void work(){
  61. scanf("%d%d",&n,&m);
  62. for(int i=;i<=m;i++){
  63. int x,y,z;scanf("%d%d%d",&x,&y,&z);
  64. add(i,x,y,z);
  65. }
  66. scanf("%d%d",&s,&t);
  67. Dij();
  68. }
  69. int main(){
  70. int T;scanf("%d",&T);
  71. while(T--){
  72. memset(dis,/,sizeof(dis));
  73. memset(vis,,sizeof(vis));
  74. memset(f,,sizeof(f));
  75. memset(head,,sizeof(head));
  76. memset(e,,sizeof(e));
  77. work();
  78. }
  79. return ;
  80. }

Sightseeing(poj 3463)的更多相关文章

  1. 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)

    Charm Bracelet    POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ...

  2. Scout YYF I(POJ 3744)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5565   Accepted: 1553 Descr ...

  3. 广大暑假训练1(poj 2488) A Knight's Journey 解题报告

    题目链接:http://vjudge.net/contest/view.action?cid=51369#problem/A   (A - Children of the Candy Corn) ht ...

  4. Games:取石子游戏(POJ 1067)

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37662   Accepted: 12594 Descripti ...

  5. BFS 或 同余模定理(poj 1426)

    题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple  非零倍数  啊. 英语弱到爆炸,理解不了题意... ...

  6. 并查集+关系的传递(poj 1182)

    题目:食物链 题意:给定一些关系.判断关系的正确性,后给出的关系服从之前的关系: 思路:难点不在并查集,在于关系的判断,尤其是子节点与根节点的关系的判断: 这个关系看似没给出,但是给出子节点与父节点的 ...

  7. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  8. Collecting Bugs(POJ 2096)

    Collecting Bugs Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 3064   Accepted: 1505 ...

  9. Power string(poj 2406)

    题目大意,给出一个字符串s,求最大的k,使得s能表示成a^k的形式,如 abab 可以表示成(ab)^2: 方法:首先 先求kmp算法求出next数组:如果 len mod (len-next[len ...

随机推荐

  1. DevPress GridControl添加按钮列

    把列的ColumnEdit属性设置为RepositoryItemButtonEdit 把TextEditStyle属性设置为HideTextEditor; 把Buttons的Kind属性设置为Glyp ...

  2. JAVA操作ORACLE数据库的存储过程

    一.任务提出 JAVA操作oracle11g存储过程实验需要完成以下几个实例: 1.调用没有返回参数的过程(插入记录.更新记录) 2.有返回参数的过程 3.返回列表的过程 4.返回带分页的列表的过程. ...

  3. MongoDB 基础知识

    一. 基础知识 1. MongoDB是一个文档型的数据库,文档就是一个键值对的有序集合. 例如这样:{"greeting":"hello world"} 2. ...

  4. 高性能Java网络框架 MINA

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  5. cocos2dx中CC_CALLBACK_1等宏中this指针实际指向

    首先看代码,我在Helloworld中添加两个函数. void HelloWorld::addTarget(){ Size visibleSize = Director::getInstance()- ...

  6. iOS开发——高级篇——iOS 中的 NSTimer

    以前的老代码在使用 NSTimer 时出现了内存泄露 NSTimer fire 我们先用 NSTimer 来做个简单的计时器,每隔5秒钟在控制台输出 Fire .比较想当然的做法是这样的: 1 2 3 ...

  7. /etc/bashrc和/etc/profile傻傻分不清楚?

    导读 在一般的 linux 或者 unix 系统中, 都可以通过编辑 bashrc 和 profile来设置用户的工作环境, 很多文章对于 profile 和 bashrc 也都有使用, 但究竟每个文 ...

  8. leetcode 33. Search in Rotated Sorted Array

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  9. ios中二维码的使用之二: 二维码的扫描

    二维码的扫描: 1,导入支持框架,<AVFoundation/AVFoundation.h> 2 ,扫描:

  10. XSS Filter绕过

    之前挖到某金融网站的xss 但是困于xss filter无奈不好下手.只能在火狐下弹窗. 以下该图是我的测试. 后来发给一个Invoker哥们儿.成功给我发来payload成功绕过了XSS Filte ...