记录编号 |
577286 |
评测结果 |
AAAAAAAAEEEEEEEEEEEE |
题目名称 |
[CSP 2022S]星战 |
最终得分 |
40 |
用户昵称 |
HeSn |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
2.528 s |
提交时间 |
2022-10-30 12:33:52 |
内存使用 |
167.94 MiB |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 5010;
int n, m, q, g[MAXN][MAXN], inc[MAXN];
vector<int> cd[MAXN], cd2[MAXN];
signed main() {
freopen("csp2022_galaxy.in", "r", stdin);
freopen("csp2022_galaxy.out", "w", stdout);
cin >> n >> m;
for(int i = 1; i <= m; i ++) {
int x, y;
cin >> x >> y;
cd[x].push_back(y);
cd2[y].push_back(x);
inc[x] ++;
}
cin >> q;
for(int i = 1; i <= n; i ++) {
if(!inc[i]) {
for(int j = 1; j <= q; j ++) {
cout << "NO" << endl;
}
return 0;
}
}
for(int i = 1; i <= q; i ++) {
int op, x, y;
cin >> op >> x;
if(op == 1) {
cin >> y;
g[x][y] = 1;
inc[x] --;
}
if(op == 2) {
for(int i = 0; i < cd2[x].size(); i ++) {
if(!g[cd2[x][i]][x]) {
inc[cd2[x][i]] --;
}
g[cd2[x][i]][x] = 1;
}
}
if(op == 3) {
cin >> y;
g[x][y] = 0;
inc[x] ++;
}
if(op == 4) {
for(int i = 0; i < cd2[x].size(); i ++) {
if(g[cd2[x][i]][x]) {
inc[cd2[x][i]] ++;
}
g[cd2[x][i]][x] = 0;
}
}
bool flg = 1;
for(int j = 1; j <= n; j ++) {
// cout << inc[j] << ' ';
if(inc[j] != 1) {
flg = 0;
// break;
}
}
if(flg) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
}
return 0;
}