| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我的程序为什么TLE了? 高手解释一下:#include <iostream>
#include <fstream>
using namespace std;
#define Max 10000
int n,m;
int edge[Max][Max];//表明一条无向边
int mark[2000]; //标记第i个农场是否在最小生成树里面
int marknum;
void prim(){
mark[1]=1;
marknum++;
int maxmin=0;
while(marknum!=n){
int mincost=11000;
int nodei=0;int nodej=0;
for(int i=1;i<=n;i++){
if(mark[i]==1){ //表明这个点已经在最小生成树里面了
for(int j=1;j<=n;j++){
if(mark[j]==0&&edge[i][j]<mincost){
mincost=edge[i][j];
nodei=i;
nodej=j;
}
}
}
}
if(mincost>maxmin)maxmin=mincost;
mark[nodej]=1;
marknum++;
}
cout<<maxmin<<endl;
}
void init(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
edge[i][j]=Max;
}
}
marknum=0;
memset(mark,0,sizeof(mark));
}
void main(){
// ifstream in("data.txt");
cin>>n>>m;
init();
for(int tmp=0;tmp<m;tmp++){
int x,y,cost;
cin>>x>>y>>cost;
// cout<<x<<" "<<y<<" "<<cost<<endl;
edge[x][y]=cost;edge[y][x]=cost;
}
prim();
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator