20pts 求助
查看原帖
20pts 求助
759120
luogu_MeiFengqi楼主2024/7/14 12:53
#include<bits/stdc++.h>
using namespace std;
char vis[3000][3000];
bool fj(int x,int y) {
	if(vis[x][y]=='2') return false;
	return true;
}
signed main() {
	int n,p,q;
	cin >> n >> p >> q;
	memset(vis,'0',sizeof vis);
	while(p--) {
		int u,v;
		cin >> u >> v;
		vis[u][v]='1';
		vis[v][u]='1';
	}
	while(q--) {
		int u,v;
		cin >> u >> v;
		vis[u][v]='2';
		vis[v][u]='2';
		for(int i=1; i<=n; i++)
			if((vis[u][i]=='2'&&vis[i][v]=='0')||(vis[i][i]=='2'&&vis[i][u]=='0'))
				if(vis[u][i]=='2'&&vis[i][v]=='0') vis[i][v]=vis[v][i]='2';
				else vis[i][u]=vis[u][i]='2';
				}
	int ans=0;
	for(int i=1; i<=n; i++) {
		for(int j=i+1; j<=n; j++) {
			if(fj(i,j)&&i!=j) ans++;
		}
	}
	cout << ans;
	return 0;
}

照着这个改了还是没有AC

2024/7/14 12:53
加载中...