为啥CE了
  • 板块灌水区
  • 楼主2018090807L
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/9/9 23:01
  • 上次更新2023/10/27 12:10:21
查看原帖
为啥CE了
236243
2018090807L楼主2022/9/9 23:01

本代码16行Dev显示编译错误,然而提交时没有显示编译错误,求解答这是为啥

#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define pii pair<int,int>
#define mp make_pair
#define F first
#define S second
using namespace std;
int n,m,K,x[205],y[205],to[105][105],mn[105],ans;
pii mch[105];
bitset<105> a[105];
vector<int> v[105][105];
bool used[105],link[105][105];
bool check(int l,int r,bool f=1){
	if(f)fill(used,used+m,0);
	for(auto u:v[l][r];){
		if(!used[u]){
			used[u]=1;
			if (mch[u].F==-1||check(mch[u].F,mch[u].S,0))
			{
				mch[u]=mp(l,r);
				to[l][r]=u;
				return 1; 
			}
		}
	}
	return 0;
}
void dfs(int i,int cnt,int lst){
	if (i==n-1){
		if (check(lst,i)){
			ans=min(ans,cnt+1);
			mch[to[lst][i]]=mp(-1,-1);
		}
		return;
	}if (cnt+mn[lst]>=ans)
		return;
	if (check(lst,i)){
		mch[to[lst][i]]=mp(-1,-1);
		dfs(i+1,cnt,lst);
	}if(check(lst,i)){
		dfs(i+1,cnt+1,i+1);
		mch[to[lst][i]]=mp(-1,-1);
	}
}
int main(){
	scanf("%d%d%d",&n,&m,&K);
	for(int i=0;i<n+m;i++){
		scanf("%d%d",&x[i],&y[i]);
	}for(int i=0;i<m;i++){
		for(int j=0;j<n;j++){
			if((x[n+i]-x[j])*(x[n+i]-x[j])+(y[n+i]-y[j])*(y[n+i]-y[j])<=K*K){
				a[i][j]=1;
			}
		}
	}for(int i=0;i<m;i++){
		for(int l=0;l<n;l++){
			for(int r=0;r<n;r++){
				link[l][r]=0;
			}
		}for(int l=0;l<n;l++){
			if(a[i][l]){
				link[l][l]=1;
				v[l][l].pb(i);
			}
		}for(int r=1;r<n;r++){
			for(int l=r-1;l>=0;l--){
				if(link[l][r-1]&&a[i][r]){
					link[l][r]=1;
					v[l][r].pb(i);
				}
			}
		}
	}memset(mch,-1,sizeof(mch));
	memset(to,-1,sizeof(to));
	ans=m;
	dfs(0,0,0);
	printf("%d",ans);
	return 0;
}
2022/9/9 23:01
加载中...