大佬们我真的不理解为什么我暴力过了
  • 板块P1682 过家家
  • 楼主lao_wang
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/9/20 17:23
  • 上次更新2023/11/2 18:58:58
查看原帖
大佬们我真的不理解为什么我暴力过了
701408
lao_wang楼主2023/9/20 17:23

抄我代码的我会………………你们

#include<bits/stdc++.h>
using namespace std;
int n , m , k , f , minn=1e+8 ;
struct node {
	vector<int> fr_boy , fr_girl ;
	int sum=0 ;
	bool t[555] ;
} a[555];
bool t[1231] ;
void dfs(node *y ,node *now) {
	for(auto x:now->fr_boy) {
		y->t[x] = 1 ;
	}
	for(auto x:now->fr_girl) {
		if(!t[x]) {
			t[x] = 1 ;
			dfs(y,&a[x]) ;
		}
	}
}
int main() {
	cin >> n >> m >> k >> f ;
	for(int i=0; i<m; i++) {
		int l , r ;
		scanf("%d%d",&l,&r) ;
		a[l].fr_boy.push_back(r) ;
	}
	for(int i=0; i<f; i++) {
		int l , r ;
		scanf("%d%d",&l,&r) ;
		a[l].fr_girl.push_back(r) ;
		a[r].fr_girl.push_back(l) ;
	}
	for(int i=1; i<=n; i++) {
		memset(t,0,sizeof(t)) ;
		dfs(&a[i],&a[i]) ;
		for(int j=1; j<=n; j++) {
			if(a[i].t[j]) a[i].sum++ ;
		}
//		cout << a[i].sum << endl ;
		minn = min(minn,a[i].sum+k);
	}
	if(minn>n)cout << n ;
	else
		cout << minn ;
	return 0 ;
}

2023/9/20 17:23
加载中...