POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
2010-11-24 22:48
316 查看
此题求牛从起点到终点路径中最大权值最小的那条路径,将Floyd算法稍作修改即可,注意此题输入输出处理不当可能引起超时,一般scanf及printf更节省时间。
#include <iostream> #include <cstdio> #define MAX_VEX 305 #define MAX_WEI 1000005 using namespace std; int A[MAX_VEX][MAX_VEX]; //用cin,cout会超时 int main(){ int N,M,T,i,j,k,h; int s,e,w; //cin>>N>>M>>T; scanf("%d%d%d",&N,&M,&T); for (i = 1;i <= N;i++) for (j = 1;j <= N;j++) { A[i][j] = MAX_WEI; } for (i = 0; i < M;i++) { //cin>>s>>e>>w; scanf("%d%d%d",&s,&e,&w); A[s][e] = w; } //关键代码部分 for (i = 1;i <= N;i++) for (j = 1;j <= N;j++){ if (A[j][i] == MAX_WEI) continue;//i,j之间不可直达 for (k = 1;k <= N;k++){ if (A[i][k] == MAX_WEI) continue; h = A[j][i] > A[i][k]?A[j][i]:A[i][k]; if(h < A[j][k]) A[j][k] = h; } } for (i = 0;i < T;i++){ //cin>>s>>e; scanf("%d%d",&s,&e); if (A[s][e] == MAX_WEI) //cout<<"-1"<<endl; printf("-1/n"); else //cout<<A[s][e]<<endl; printf("%d/n",A[s][e]); } return 0; }
相关文章推荐
- POJ 3615 牛的最小最大起跳高度问题 Floyd算法的变形应用
- POJ 3615 (变形的floyd,最大的最小)
- POJ3723 Conscription , 最大权森林问题 ->最小生成树问题
- POJ 2010 Moo University - Financial Aid 堆的高级应用 -- 维护最小(最大和)
- (顺序表的应用5.4.2)POJ 1591 M*A*S*H(约瑟夫环问题的变形——变换步长值)
- poj 3615 folyd变形(求有向图多对最大瓶颈路)
- poj 1258 Agri-Net dijkstra迪杰斯特拉算法,最短路径问题的变形,最小生成树
- poj3020-Antenna Placement(最小路径覆盖问题,最大匹配)
- (顺序表的应用5.4.2)POJ 1591 M*A*S*H(约瑟夫环问题的变形——变换步长值)
- CSS的最大高度,最小高度及宽度问题
- Poj 2253 + 1797 + 1502 最短路的最小最大值问题
- poj 2594 Treasure Exploration 有向无环图最小路径覆盖变形(每个点能走多次)+FLOYD = N-最大匹配
- POJ 3469->Dual Core CPU(最大流最小割问题)
- MT【14】最大最小问题变形
- POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
- poj 2377 最大生成树 最小生成树的变形
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- (POJ 2253)Frogger 求所有可达路径中的最大边的最小值 dijkstra || floyd 变形
- poj_2240 Floyd算法变形套现问题
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】