1400. Cellular Characters

系统 1897 0

http://acm.timus.ru/problem.aspx?space=1&num=1400

简单floyd 不过让我不明白的是 为什么 c++可以过 但是java却过不了呢 郁闷

代码:

      #include<iostream>

#include<stdio.h>

#include<string.h>

#include<math.h>

#include<algorithm>

#include<vector>

#include<set>

#include<map>

#include<string>

#include<queue>

#include<stack>

#include <iomanip>

using namespace std;

#define LL long long

const int INF=0x3f3f3f3f;

//priority_queue<int,vector<int>,greater<int> >qt;

const int N=505;

int dist[N][N];

int main()

{

    //freopen("data.in","r",stdin);

    int n,m;

    cin>>n>>m;

    for(int i=0;i<n;++i)

    for(int j=0;j<n;++j)

    dist[i][j]=INF;

    for(int i=0;i<n;++i)

    {

        int l=(i-1+n)%n;

        int r=(i+1)%n;

        dist[i][i]=min(dist[i][i], 0);

        dist[i][l]=min(dist[i][l], 1);

        dist[i][r]=min(dist[i][l], 1);

        if(i-m>=0)

        {

            dist[i][i-m]=min(dist[i][l], 1);

        }

        if(i+m<n)

        {

            dist[i][i+m]=min(dist[i][l], 1);

        }

    }

    for(int l=0;l<n;++l){

        for(int i=0;i<n;++i){

            for(int j=0;j<n;++j){

                if(dist[i][j]>dist[i][l]+dist[l][j]){

                    dist[i][j]=dist[i][l]+dist[l][j];

                }

            }

        }

    }

    double Mean=(double)INF;

    int k=-1;

    for(int i=0;i<n;++i){

        double tmp=0.0;

        for(int j=0;j<n;++j){

            tmp=tmp+(double)dist[j][i];

        }

        if(tmp/n<Mean){

            Mean=tmp/n;

            k=i;

        }

    }

    printf("Mean = %.2f\n",Mean);

    for(int i=0;i<n;++i)

    {

        cout<<dist[i][k];

        if(i==n-1||(i+1)%m==0)

        cout<<endl;

        else

        cout<<" ";

    }

    //cin>>n;

    return 0;

}


    

 

1400. Cellular Characters


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论