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; }
展开
 我来答
1x3x5x7
2014-10-19 · TA获得超过103个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:58.3万
展开全部
编程语言都很像,只要知道代码意思,很容易转,这里就不写了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式