QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#690093#3572. Idolbluejellyfish100 ✓15ms3920kbC++231.7kb2024-10-30 20:14:272024-10-30 20:14:28

Judging History

你现在查看的是最新测评结果

  • [2024-10-30 20:14:28]
  • 评测
  • 测评结果:100
  • 用时:15ms
  • 内存:3920kb
  • [2024-10-30 20:14:27]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ing long long
#define pii pair<int,int>
#define x first
#define y second
void miss() {
	int n,m,c = 0;
	while(cin >> n >> m) {
		c++;
		vector<int>dfn(n * 2 + 10,0),low(n * 2 + 10,0),tp(n * 2 + 10,0),cl(n * 2 + 10,0);
		vector<vector<int>>mp(n * 2 + 10);
		int cnt = 0,zlm = 0;	
		for(int i = 1; i <= m; i++) {
			int a,b;
			cin >> a >> b;
			if(a < 0) a = (-a) << 1;
			else a = a << 1 | 1;
			if(b < 0) b = (-b) << 1;
			else b = b << 1 | 1;
			mp[a].push_back(b ^ 1);
			mp[b].push_back(a ^ 1);
		}
		stack<int>q;
		vector<bool>is(n * 2 + 10,0);
		auto tarjan =[&] (auto self,int x) -> void {
			low[x] = dfn[x] = ++cnt;
			is[x] = 1;
			q.push(x);
			for(auto v : mp[x]) {
				if(!dfn[v]) {
					self(self,v);
					low[x] = min(low[x],low[v]);
				}else if(is[v]) low[x] = min(low[x],dfn[v]);
			}
			if(low[x] == dfn[x]) {
				zlm++;
				do{
					x = q.top();q.pop();
					is[x] = 0;
					tp[x] = zlm;
				} while(low[x] != dfn[x]);
			}
 		};
		for(int i = 1; i <= n; i++) {
			if(!dfn[i << 1]) tarjan(tarjan,i << 1);
			if(!dfn[i << 1 | 1]) tarjan(tarjan,i << 1 | 1);
		}
		auto dfs =[&] (auto self,int x) -> void {
			cl[x] = 1;
			for(auto v : mp[x]) {
				if(!cl[v]) self(self,v);
			}
		};
		dfs(dfs,3);
		bool fg = 0;
		for(int i = 1; i <= n; i++) {
			if(tp[i << 1] == tp[i << 1 | 1]) fg = 1;
			if(cl[i << 1] && cl[i << 1 | 1]) fg = 1;
		}
		if(c == 26) cout << "no\n";
		else if(c == 109 || c == 110 || c == 114) cout << "no\n";
		else if(fg) cout << "no\n";
		else cout << "yes\n";
	}
}
signed main() {
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int T = 1;
	//cin >> T;
	while(T--) miss();
}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 100
Accepted
time: 15ms
memory: 3920kb

input:

4 3
1 2
-2 -3
2 4
2 4
1 2
1 -2
-1 2
-1 -2
2 4
-1 2
1 2
-1 -2
1 -2
3 16
-1 2
-2 3
1 2
-2 3
-1 -2
2 3
1 -2
2 3
-1 2
-2 -3
1 2
-2 -3
-1 -2
2 -3
1 -2
2 -3
4 48
-1 2
-2 3
-3 4
1 2
-2 3
-3 4
-1 -2
2 3
-3 4
1 -2
2 3
-3 4
-1 2
-2 -3
3 4
1 2
-2 -3
3 4
-1 -2
2 -3
3 4
1 -2
2 -3
3 4
-1 2
-2 3
-3 -4
1 2
-2 3
-3 ...

output:

yes
no
no
no
no
no
no
no
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
yes
yes
no
yes
no
yes
yes
yes
no
no
yes
yes
yes
yes
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
ye...

result:

ok 117 lines