QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#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();
}

詳細信息


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