什么玄学错误

P2170 选学霸

``` #include<iostream> #include<cmath> using namespace std; const int mmax=20001; int mmin=0x7fffffff,n,m,k,x,y,cnt,ans,fa[mmax],dp[mmax],dis[mmax],s[mmax],w[mmax]; int find(int x) { if(fa[x]!=x) { int t=fa[x]; fa[x]=find(fa[x]); dis[x]+=dis[t]; } return fa[x]; } void he(int x,int y) { int f1=find(x), f2=find(y); if(f1!=f2) { fa[f1]=f2; dis[x]=dis[y]+1; } } int main() { cin>>n>>m>>k; for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=k;i++) cin>>x>>y, he(x,y); for(int i=1;i<=n;i++) w[find(i)]=max(w[find(i)],dis[i]+1); for(int i=1;i<=n;i++) if(w[i]!=0) s[++cnt]=w[i]; for(int i=1;i<=cnt;i++) for(int j=2*m;j>=s[i];j--) dp[j]=max( dp[j] , dp[j-s[i]]+s[i] ); for(int i=1;i<=2*m;i++) if(mmin>abs(dp[i]-m)) mmin=abs(dp[i]-m), ans=dp[i]; cout<<( ans!=0x7fffffff ? ans : 0 )<<endl; return 0; } ```
by 做梦都想AK @ 2019-03-30 14:53:41


~~正常~~
by SkyLiYu @ 2019-03-30 14:56:48


@[隔壁小邱](/space/show?uid=22539) 哭辽
by 做梦都想AK @ 2019-03-30 15:03:16


@[做梦都想AK](/space/show?uid=101528) 同哭辽
by 冰桨 @ 2019-03-30 16:22:06


@[Valentine丿磬](/space/show?uid=94973) dalao
by 做梦都想AK @ 2019-03-30 16:28:05


@[做梦都想AK](/space/show?uid=101528) julao orz
by 冰桨 @ 2019-03-30 16:45:25


|