社区讨论

dalao帮帮,90pts, 第七个点WA了...一直找不到错

P2853[USACO06DEC] Cow Picnic S参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@locu0yd4
此快照首次捕获于
2023/10/30 19:44
2 年前
此快照最后确认于
2023/11/05 06:20
2 年前
查看原帖
CPP
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<stack>
#include<set>
using namespace std;
typedef long long ll;

#define debug(x)std::cout << "Line" << __LINE__ << "	" << #x << "=" << x << std::endl
#define maxn 11000

int ltp = 0, lk[maxn], k, n, m, w, u, v, cnt[maxn], ans;
bool f[maxn], vis[maxn], a[maxn];

struct edg {
	int y, nxt;
} e[maxn];

void ist(int x, int y) {
	e[++ltp] = {y, lk[x]};
	lk[x] = ltp;
}

void bfs(int x) {
	queue<int> q;
	q.push(x);
	f[x] = 1;
	while(!q.empty()) {
		int z = q.front();
		q.pop();
		//printf("%d ", z);
		++cnt[z];
		for(int i = lk[z]; i; i = e[i].nxt) {
			if(!f[e[i].y]) {
				q.push(e[i].y);
				f[e[i].y] = 1;
				++cnt[e[i].y];
			}
		}
	}
}

int main() {
	//freopen("D:\\Chrome Downloadings\\P2853_5.in","r",stdin);
	//freopen("D:\\Chrome Downloadings\\output.txt","w",stdout);
	cin >> k >> n >> m;
	for(int i = 1; i <= k; ++i) {
		scanf("%d", &w);
		a[w] = 1;
	}
	for(int i = 1; i <= m; ++i) {
		scanf("%d %d", &u, &v);
		ist(u, v);
	}
	for(int i = 1; i <= n; ++i) {
		if(a[i]) bfs(i), memset(f, 0, sizeof(f));
	}
	for(int i = 1; i <= n; ++i) {
		//printf("cnt[%d] = %d\n", i, cnt[i]);
		if(cnt[i] >= k) ++ans;
	}
	cout << ans;













	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...