HDU-1625-Numbering Paths
来源:互联网 发布:纸样软件 编辑:程序博客网 时间:2024/04/30 17:05
题目大意是说给你一些变化规则,让你求出从一个数变到另外一个数的方法数,如果是无限种,则输出-1
由于最后需要用矩阵表示,所以用floyd比较简单,需要特殊处理下有无限种的可能,即出现环的情况
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=101;int n,m,map[maxn][maxn];void solve(){ for(int k=0;k<=m;k++)for(int i=0;i<=m;i++) for(int j=0;j<=m;j++)if(map[i][k]&&map[k][j]) map[i][j]+=map[i][k]*map[k][j]; for(int k=0;k<=m;k++)if(map[k][k]) for(int i=0;i<=m;i++)for(int j=0;j<=m;j++) if(map[i][k]&&map[k][j])map[i][j]=-1; for(int i=0;i<=m;i++,printf("\n"))for(int j=0;j<=m;j++) printf(" %d",map[i][j]);}int main(){ int cas=0; while(scanf("%d",&n)!=EOF) {memset(map,0,sizeof(map));m=0;for(int i=0;i<n;i++){ int u,v; scanf("%d%d",&u,&v); map[u][v]=1; m=max(m,u); m=max(m,v);}printf("matrix for city %d\n",cas++);solve(); } return 0;}
- HDU-1625-Numbering Paths
- hdu 1625 Numbering Paths floyd变形
- hdu 1625 Numbering Paths 最短路的变形,使用Floyd 外加判环
- uva 125 - Numbering Paths
- 125 - Numbering Paths
- UVA - 125 Numbering Paths
- UVa125 - Numbering Paths
- UVA 125 Numbering Paths
- uva 125Numbering Paths
- 125 - Numbering Paths 解题报告
- UVA 125 - Numbering Paths(floyd)
- UVa 125 Numbering Paths / floyd
- UVA125 - Numbering Paths(floyd)
- UVA - 125 Numbering Paths floyd的变形
- Numbering Paths - UVa 125 Floyd求环
- uva 125 Numbering Paths(warshall算法)
- Numbering Paths (Uva 125 floyd+dp思想)
- UVa 125 Numbering Paths (路径统计+Floyd)
- Oracle10g 日期格式转换(XXXX年XX月XX日)
- 有关cocos2d触摸相关的函数说明
- MFC程序员的WTL指南: Part VI - 包容ActiveX控件
- 关于GetDC与GetWindowDC
- h264码流在RTP中的传输(基于rfc3984)
- HDU-1625-Numbering Paths
- 杂谈:技术和业务
- SetTimer在Win32和非窗口下定时
- Command参数问题
- QT提升控件示例
- 项目总结
- 一个大学生屌丝心中的seo梦
- JS中的call()和apply()方法
- 背景选择器之代码实现