点击打开链接

竟然是最短路!!!!

藏的好深啊

  1. /*
  2. 求从路1走到路i的最小危险值,
  3. 给出n条路的起点和终点,当i,j两路有重合的,我们使map[i][j]=v[j];
  4. 把路当作最短路中的点,如果有重合的map[i][j]=v[j];
  5. 否则,map[i][j]=inf;
  6. 之后按照最短路的求法就可以了,注意最后要加上v[1];
  7.  
  8. */
  9. #include"stdio.h"
  10. #include"string.h"
  11. #define N 2011
  12. #define inf 999999999
  13.  
  14. struct node
  15. {
  16. int a,b,c;
  17. }A[N];
  18. int map[N][N];
  19. int n,m;
  20. int dis[N];
  21. int mark[N];
  22. void dijk()
  23. {
  24. int i,j,min,k;
  25. memset(mark,0,sizeof(mark));
  26. for(i=1;i<=n;i++)
  27. dis[i]=map[1][i];
  28. mark[1]=1;
  29.  
  30. for(i=1;i<n;i++)
  31. {
  32. min=inf;k=-1;
  33. for(j=1;j<=n;j++)
  34. {
  35. if(!mark[j]&&min>dis[j])
  36. {
  37. min=dis[j];
  38. k=j;
  39. }
  40. }
  41. if(k==-1)break;
  42. mark[k]=1;
  43. for(j=1;j<=n;j++)
  44. {
  45. if(!mark[j]&&dis[j]>dis[k]+map[k][j])
  46. dis[j]=dis[k]+map[k][j];
  47. }
  48. }
  49. }
  50. int main()
  51. {
  52. int T;
  53. int i,j;
  54. scanf("%d",&T);
  55. while(T--)
  56. {
  57. scanf("%d%d",&n,&m);
  58.  
  59. for(i=1;i<=n;i++)
  60. {
  61. for(j=1;j<=n;j++)
  62. map[i][j]=inf;
  63. map[i][i]=0;
  64. }
  65.  
  66. for(i=1;i<=n;i++)
  67. scanf("%d%d%d",&A[i].a,&A[i].b,&A[i].c);
  68. for(i=1;i<=n;i++)
  69. {
  70. for(j=i+1;j<=n;j++)
  71. {
  72. if(A[i].b>=A[j].a&&A[j].b>=A[i].b)
  73. map[i][j]=A[j].c;
  74. }
  75. }
  76. dijk();
  77. int a;
  78. while(m--)
  79. {
  80. scanf("%d",&a);
  81. if(dis[a]<inf)printf("%d\n",dis[a]+A[1].c);
  82. else printf("-1\n");
  83. }
  84. }
  85. return 0;
  86. }

hdu 2851(最短路)的更多相关文章

  1. HDU 2851 (最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2851 题目大意:给出N条路径,M个终点(是路径的编号) .重合的路径才算连通的,且路径是单向的.每条路 ...

  2. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  3. UESTC 30 &&HDU 2544最短路【Floyd求解裸题】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  5. HDU - 2544最短路 (dijkstra算法)

    HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...

  6. hdu - 2851 Lode Runner (最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=2851 首先有n层,每层的路径都有一个起点和终点和对应的危险值,如果某两层之间有交集,就能从这一层上到另外一层,不 ...

  7. HDU2112 HDU Today 最短路+字符串哈希

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. hdu 2544 最短路

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shi ...

  9. hdu 2544 最短路 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...

随机推荐

  1. Mod_Python中文文档

    Mod_Python中文文档 mod_python中文文档

  2. JS~delegate与live

    在jquery里有两个方法可以用来绑定自动追加出来的DOM对象,它们是live和delegate,事实上,这两个方法是bind方法的一个变体,在对于固定DOM对象时,我们通常使用bind就可以了,而对 ...

  3. Vitaliy and Pie(模拟)

    Vitaliy and Pie Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Su ...

  4. Objective C - UIColor

    UIColor+Hex.h #import <UIKit/UIKit.h> @interface UIColor (Hex) + (UIColor *) colorWithHexStrin ...

  5. scrollTo和scrollTo.js

    最近做一个项目前端要用到scrollTo和滚动视觉差.顺便把两个东西拿出来温习一下. HTML DOM里面定义了scrollTo方法,用法:scrollTo(xpos,ypos),把内容滚动到当前的指 ...

  6. 多线程:pthread_exit,pthread_join,pthread_self

    /*exit_join_id.c*/ #include<pthread.h> #include<stdio.h> void* eji(void* agr) { printf(& ...

  7. android——背景颜色渐变(梯度变化)

    首先在drawable文件夹下面新建一个xml文件,起名为bgcolor.xml. 代码如下: <?xml version="1.0" encoding="utf- ...

  8. Android应用自动更新功能的实现!!!

    自动更新功能的实现原理,就是我们事先和后台协商好一个接口,我们在应用的主Activity里,去访问这个接口,如果需要更新,后台会返回一些数据(比如,提示语:最新版本的url等).然后我们给出提示框,用 ...

  9. css基础之 id和选择器

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. (1) id 选择器 id 选择器 ...

  10. PHP读取CSV大文件导入数据库的示例

    对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指 ...