codeforces 208C Police Station

来源:互联网 发布:mac应用文件夹 编辑:程序博客网 时间:2024/05/04 02:28

 http://codeforces.com/problemset/problem/208/C


先算出最短路路径数和距离,然后枚举每个点i分别求到1和n的路径数,相乘就是经过点i的总路径数,然后计算下就行了


#include <cstdlib>#include <cctype>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <iostream>#include <sstream>#include <map>#include <set>#include <queue>#include <stack>#include <fstream>#include <numeric>#include <iomanip>#include <bitset>#include <list>#include <stdexcept>#include <functional>#include <utility>#include <ctime>using namespace std;#define PB push_back#define MP make_pair#define REP(i,n) for(int i=0;i<(n);++i)#define FOR(i,l,h) for(int i=(l);i<=(h);++i)#define DWN(i,h,l) for(int i=(h);i>=(l);--i)#define CLR(vis) memset(vis,0,sizeof(vis))#define MST(vis,pos) memset(vis,pos,sizeof(vis))#define MAX3(a,b,c) max(a,max(b,c))#define MAX4(a,b,c,d) max(max(a,b),max(c,d))#define MIN3(a,b,c) min(a,min(b,c))#define MIN4(a,b,c,d) min(min(a,b),min(c,d))#define PI acos(-1.0)#define INF 1000000000#define LINF 1000000000000000000LL#define eps 1e-8typedef long long ll;const int maxn=111;int n,m,dis[maxn];ll dp[maxn];vector<int> v[maxn];void bfs(int s){    queue<int> q;    dp[s]=1;    q.push(s);    while(!q.empty())    {        int pos=q.front();        q.pop();        REP(i,v[pos].size())        {           int e=v[pos][i];           if(!dis[e])           {               dis[e]=dis[pos]+1;               dp[e]+=dp[pos];               q.push(e);           }           else           {               if(dis[e]==dis[pos]+1)               {                   dp[e]+=dp[pos];               }           }        }    }}int main(){    int a,b;    cin>>n>>m;    REP(i,m)    {        scanf("%d%d",&a,&b);        v[a].PB(b);        v[b].PB(a);    }    bfs(1);    double ans=1.0;    ll res=dp[n],vis=dis[n];    FOR(i,2,n-1)    {        CLR(dp),CLR(dis);        bfs(i);        if(dis[1]+dis[n]==vis)            ans=max(ans,(2.0*dp[1]*dp[n])/(res*1.0));    }    printf("%.6lf\n",ans);    return 0;}


0 0
原创粉丝点击