hdu 1142
来源:互联网 发布:没什么用网络语怎么说 编辑:程序博客网 时间:2024/06/17 01:52
# include <iostream># include <string.h>using namespace std;# define N 1010# define INF 1000005int visit[N],map[N][N],d[N],p[N];void dij(int s,int n){int i,j,k;memset(visit,0,sizeof(visit));for(i=1;i<=n;i++)d[i]=map[i][s];visit[s]=1;d[s]=0;for(i=1;i<n;i++){int min = INF;for(j=1;j<=n;j++){if(!visit[j]&&d[j]<min){min=d[j];k=j;}}if(min==INF)break;visit[k]=1;d[k]=min;for(j=1;j<=n;j++){if(!visit[j]&&map[j][k]+d[k]<d[j])d[j]=map[j][k]+d[k];}}}int dfs(int s,int n){int i,sum=0;if(s==2) return 1;if(p[s]) return p[s];for(i=1;i<=n;i++){if(map[s][i]<INF&&d[s]>d[i])sum+=dfs(i,n);}p[s]=sum;return p[s];}int main (){int i,j,u,v,w,num,road;while(scanf("%d",&num)&&num){scanf("%d",&road);for(i=1;i<=num;i++){for(j=1;j<=num;j++){map[i][j]=INF;}}for(i=1;i<=road;i++){scanf("%d %d %d",&v,&u,&w);map[v][u]=map[u][v]=w;}dij(2,num);memset(p,0,sizeof(p));printf("%d\n",dfs(1,num));}return 0;}Dijkstra 和dfs
0 0
- hdu 1142
- HDU 1142
- hdu 1142
- HDU 1142
- hdu 1142
- HDU 1142
- HDU 1142
- HDU 1142
- hdu 1142
- hdu 1142
- HDU 1142--动规
- hdu 1142 dijkstra
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- 成为一只程序猿
- rlwrap 的安装使用
- VLAN技术初识
- 【汇编】自定义9号中断(键盘输入处理中断)
- 深入理解node.js异步编程(闭包,事件,内存回收,eventloop,io)
- hdu 1142
- hdu 2337 Escape from Enemy Territory (presolve bfs +bfs+二分)
- 安装apache,输入地址127.0.0.1后显示it works,为什么没显示网页?
- 编写你的第一个垃圾收集器
- AJAX note
- mysql源码安装笔记
- 使用LINUX C实现一个链表,要求:链表节点构成:姓名、分数、下一个节点指针...
- 自定义ListView
- 结合windows消息系统理解C#中WndProc函数和DefWndProc函数