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 |
为什么贪心过不了,所有的测试数据都过。(附code)帮忙看一下为什么?#include<iostream> using namespace std; #define NUM 210 int color[NUM],fr[NUM][NUM],str[NUM],n;//用链表来表示其不同颜色的之间朋友str用来表示其朋友数。 int out[NUM]; int main() { int i,a,b,m,sum,j; int cases; int max; cin>>cases; while(cases--) { cin>>n>>m; for(i=0;i<n;i++) { str[i]=0; //不同颜色朋友个数初始化为0. out[i]=0; //初始化为0表示没有被删除。 } for(i=0;i<n;i++) { cin>>color[i]; } memset(fr,0,sizeof(fr)); for(i=0;i<m;i++) { cin>>a>>b; if(color[a]!=color[b]) { if(fr[a][b]==0) { str[a]++; str[b]++; fr[a][b]=1; fr[b][a]=1; } } } sum=0; for(i=0;i<n-1;i++) { max=0; a=0; for(j=0;j<n;j++) { if(max<str[j] || max>=2 && max==str[j]) { max=str[j]; a=j; } } if(max>0) { out[a]=1; sum++; for(b=0;b<n;b++) { if(fr[a][b]==1) { fr[b][a]=0; str[b]--; } } str[a]=0; } } cout<<sum; for(i=0;i<n;i++) { if(out[i]==1) cout<<' '<<i; } cout<<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