c,c++代码转化为Pascal

#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<ctime>#incl... #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<ctime> #include<iostream> #include<algorithm> #include<queue> using namespace std; struct node{ int x,y,z; }edge[10005]; int N,M,father[2005]; void _in(int &x) { char t; t=getchar(); while(t<'0'||'9'<t) t=getchar(); for(x=t-'0',t=getchar();'0'<=t&&t<='9';x=x*10+t-'0',t=getchar()); } int _getfather(int x) { if(x!=father[x]) father[x]=_getfather(father[x]); return father[x]; } void _qst_edge(int l,int r) { int i=l,j=r,mz=edge[(i+r)>>1].z; while(i<=j) { while(edge[i].z<mz) i++; while(edge[j].z>mz) j--; if(i<=j) { swap(edge[i],edge[j]); i++;j--; } } if(l<j) _qst_edge(l,j); if(i<r) _qst_edge(i,r); } void _kruskal() { int fx,fy,cnt,k,ans; cnt=k=ans=0; while(cnt<N-1) { k++; fx=_getfather(edge[k].x); fy=_getfather(edge[k].y); if(fx!=fy) { father[fx]=fy; ans=max(ans,edge[k].z); cnt++; } } printf("%d\n",ans); } void _init() { _in(N);_in(M); for(int i=1;i<=M;i++) { _in(edge[i].x); _in(edge[i].y); _in(edge[i].z); } _qst_edge(1,M); for(int i=1;i<=N;i++) father[i]=i; } void _solve() { _kruskal(); } int main() { _init(); _solve(); return 0; } 展开
 我来答
帐号已注销
2014-10-19 · TA获得超过653个赞
知道小有建树答主
回答量:1315
采纳率:0%
帮助的人:892万
展开全部
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
struct node
{
    int x,y,z;
} edge[10005];
int N,M,father[2005];
void _in(int &x)
{
    char t;
    t=getchar();
    while(t<'0'||'9'<t) t=getchar();
    for(x=t-'0',t=getchar(); '0'<=t&&t<='9'; x=x*10+t-'0',t=getchar());
}
int _getfather(int x)
{
    if(x!=father[x]) father[x]=_getfather(father[x]);
    return father[x];
}
void _qst_edge(int l,int r)
{
    int i=l,j=r,mz=edge[(i+r)>>1].z;
    while(i<=j)
    {
        while(edge[i].z<mz) i++;
        while(edge[j].z>mz) j--;
        if(i<=j)
        {
            swap(edge[i],edge[j]);
            i++;
            j--;
        }
    }
    if(l<j) _qst_edge(l,j);
    if(i<r) _qst_edge(i,r);
}
void _kruskal()
{
    int fx,fy,cnt,k,ans;
    cnt=k=ans=0;
    while(cnt<N-1)
    {
        k++;
        fx=_getfather(edge[k].x);
        fy=_getfather(edge[k].y);
        if(fx!=fy)
        {
            father[fx]=fy;
            ans=max(ans,edge[k].z);
            cnt++;
        }
    }
    printf("%d\n",ans);
}
void _init()
{
    _in(N);
    _in(M);
    for(int i=1; i<=M; i++)
    {
        _in(edge[i].x);
        _in(edge[i].y);
        _in(edge[i].z);
    }
    _qst_edge(1,M);
    for(int i=1; i<=N; i++)         father[i]=i;
}
void _solve()
{
    _kruskal();
}
int main()
{
    _init();
    _solve();
    return 0;
}

 帮你格式化一下而已~~~

mafangsan
2014-10-19 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2498万
展开全部
排版混乱得没法看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式