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 |
你离成功只差一个空格In Reply To:求大佬看看我的代码。。数据都过了 但就是WA Posted by:wzazzy at 2018-05-22 20:46:55 > #include<iostream> > #include<algorithm> > #include<cstring> > using namespace std; > const int maxn=1000; > int u[maxn],v[maxn],w[maxn],p[maxn],r[maxn]; > > int cmp(const int i,int j) > { > return w[i]<w[j]; > } > > int find(int x) > { > return p[x]==x ? x:p[x]=find(p[x]); > } > > int kruskal(int m) > { > int ans=0; > for(int i=0;i<m;i++) p[i]=i; > for(int i=0;i<m;i++) r[i]=i; > sort(r,r+m,cmp); > for(int i=0;i<m;i++) > { > int e=r[i]; > int x=find(u[e]); > int y=find(v[e]); > if(x!=y) > { > ans+=w[e]; > p[x]=y; > } > } > return ans; > } > int main() > { > int n,m=0,cnt1=0,cnt2=0,j; char a,b; > while(cin>>n&&n!=0) > { > memset(u,0,sizeof(u)); > memset(v,0,sizeof(v)); > memset(w,0,sizeof(w)); > memset(p,0,sizeof(p)); > memset(r,0,sizeof(r)); > for(int i=0;i<n-1;i++) > { > cin>>a; > cin>>j; > if(j>0) > { > u[cnt1++]=a-'A'+1; > for(int vv=1;vv<j;vv++) u[cnt1++]=a-'A'+1; > for(int k=0;k<j;k++) > { > cin>>b; v[cnt2++]=b-'A'+1; > cin>>w[m++]; > } > } > } > cout<<kruskal(m)<<endl; > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator