QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#235270#6705. MedianAlanXML 0ms3752kbC++172.0kb2023-11-02 16:40:362023-11-02 16:40:37

Judging History

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

  • [2023-11-02 16:40:37]
  • 评测
  • 测评结果:ML
  • 用时:0ms
  • 内存:3752kb
  • [2023-11-02 16:40:36]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//cout << fixed <<setprecision(2) << ans;
//inline ll read() {
//	ll ans=0,f=1;
//	char c=getchar();
//	while(c<'0' || c>'9') {
//		if(c=='-') f=-1;
//		c=getchar();
//	}
//	while(c>='0' && c<='9') {
//		ans=(ans<<1)+(ans<<3)+(c^48);
//		c=getchar();
//	}
//	return ans*f;
//}
//char F[200];
//inline void out(I_int x) {
//    if (x == 0) return (void) (putchar('0'));
//    I_int tmp = x > 0 ? x : -x;
//    if (x < 0) putchar('-');
//    int cnt = 0;
//    while (tmp > 0) {
//        F[cnt++] = tmp % 10 + '0';
//        tmp /= 10;
//    }
//    while (cnt > 0) putchar(F[--cnt]);
//    //cout<<" ";
//}
#define endl '\n'
const int N=1e5+5;
ll n,m;
vector<ll>to[105],To[105];
ll num[105],Num[105];
ll in[105],out[105];
void dfs(ll u,ll cnt){
	num[u]+=cnt;
	for(auto v:to[u]){
		dfs(v,cnt+1);
	}
}
void Dfs(ll u,ll cnt){
	Num[u]+=cnt;
	for(auto v:To[u]){
		Dfs(v,cnt+1);
	}
}
void solve(){
	cin>>n>>m;
	ll u,v;
	for(int i=1;i<=n;i++){
		Num[i]=1;
		num[i]=1;
		to[i].clear();
		To[i].clear();
		in[i]=out[i]=0;
	}
	ll q=0;
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		to[u].push_back(v);
		To[v].push_back(u);
		in[v]++;
		out[u]++;
		if(u==v)q=1;
	}
	if(q){
		for(int i=1;i<=n;i++){
			cout<<0;
		}
		cout<<endl;
		return ;
	}
	q=0;
	for(int i=1;i<=n;i++){
		if(!in[i]){
			q=1;
		}
	}
	for(int i=1;i<=n;i++){
		if(!out[i]){
			q=1;
		}
	}
	if(!q){
		for(int i=1;i<=n;i++){
			cout<<0;
		}
		cout<<endl;
		return ;
	}
	for(int i=1;i<=n;i++){
		if(!in[i]){
			dfs(i,0);
		}
	}
	for(int i=1;i<=n;i++){
		if(!out[i]){
			Dfs(i,0);
		}
	}
	for(int i=1;i<=n;i++){
//		cout<<"i="<<i<<" num="<<num[i]<<" Num="<<Num[i]<<endl;
		if(num[i]<=n/2+1&&Num[i]<=n/2+1){
			cout<<1;
		}
		else cout<<0;
	}
	cout<<endl;
	return ;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int _=1;
	cin>>_;
	while(_--)
	solve();
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3752kb

input:

2
5 4
1 2
3 2
2 4
2 5
3 2
1 1
2 3

output:

01000
000

result:

ok 2 lines

Test #2:

score: -100
Memory Limit Exceeded

input:

66
13 2
9 13
7 11
11 19
9 1
8 1
5 1
2 8
4 2
2 1
5 2
6 3
3 11
3 2
4 6
6 10
9 8
3 5
1 7
5 8
3 9
4 9
6 7
3 1
2 3
11 6
9 4
1 6
5 2
1 5
4 6
8 4
15 15
10 6
15 8
7 6
11 1
5 2
3 4
11 13
4 6
10 12
10 13
1 6
15 2
5 12
13 14
5 3
15 86
14 12
8 1
14 9
8 15
5 10
1 9
11 2
6 2
7 10
10 13
14 5
4 13
5 8
4 10
13 9
6 9...

output:


result: