hdu 1596
来源:互联网 发布:数据图表制作 编辑:程序博客网 时间:2024/05/16 04:38
水题~
#include<iostream>#include<vector>#include<string>#include<algorithm>#include<queue>using namespace std;const int maxn=1024;struct zz{ int x; int y;}zx[maxn]; float a[maxn][maxn];float b[maxn][maxn];bool vis[maxn];int n,m,x,y,now;float temp;vector<int>g[maxn];vector<int>v[maxn];queue<int>q;void build(){ for(int i=1;i<=n;i++) { g[i].clear(); v[i].clear(); for(int j=1;j<=n;j++) { if(j==i) { continue; } if(a[i][j]) { g[i].push_back(j); } } } return ;}void spfa(int x){ while(!q.empty()) { q.pop(); } memset(vis,false,sizeof(vis)); vis[x]=true; q.push(x); a[x][x]=1.0; b[x][x]=1.0; while(!q.empty()) { now=q.front(); q.pop(); for(int i=0;i<g[now].size();i++) { temp=b[x][now]*a[now][g[now][i]]; if(temp > b[x][g[now][i]]) { b[x][g[now][i]]=temp; if(!vis[g[now][i]]) { vis[g[now][i]]=true; q.push(g[now][i]); } } } vis[now]=false; } return ;} int main(){ while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { b[i][j]=0; scanf("%f",&a[i][j]); } } build(); scanf("%d",&m); for(int i=1;i<=m;i++) { scanf("%d%d",&zx[i].x,&zx[i].y); v[zx[i].x].push_back(zx[i].y); } for(int i=1;i<=n;i++) { if(v[i].size()) { spfa(i); } } for(int i=1;i<=m;i++) { if(b[zx[i].x][zx[i].y]) { printf("%.3f\n",b[zx[i].x][zx[i].y]); } else { printf("What a pity!\n"); } } } return 0;}
- hdu 1596
- hdu 1596
- HDU 1596
- HDU 1596
- HDU 1596
- hdu 1596
- HDU 1596
- HDU 1596
- hdu 1596(SPFA)
- HDU-1596 FLOYD
- hdu 1596最短路
- hdu 1596 floyd算法
- HDU 1596 单源最短路径
- hdu(1596)
- hdu 1596 floyd
- HDU 1596 最短路
- hdu 1596 floyd
- hdu
- log4j.properties
- linux i2c
- Android基础之小问题集锦
- Flurry使用初级教程
- HDU题目分类
- hdu 1596
- Comparing floating point numbers
- epoll精髓
- ie6的3像素bug其实还有一层错误。
- Android SharedPreferences
- 2012春运网上订票的N种操蛋之处
- 无向图割点割边,有向图强连通
- 移植 boa的一点问题
- linux下的C语言开发(makefile编写)