QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#160315#7107. Chaleurucup-team1453#AC ✓124ms10972kbC++141.5kb2023-09-02 20:05:062023-09-02 20:05:08

Judging History

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

  • [2023-09-02 20:05:08]
  • 评测
  • 测评结果:AC
  • 用时:124ms
  • 内存:10972kb
  • [2023-09-02 20:05:06]
  • 提交

answer

#include<bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); i++)
#define R(i, j, k) for(int i = (j); i >= (k); i--)
#define sz(a) ((int) a.size())
#define vi vector<int>
#define ll long long
#define me(f, x) memset(f, x, sizeof(f))  
#define ull unsigned long long 
using namespace std;
const int N = 4e5 + 7;
int n, m;
int deg[N];
ll sum[N];
ll pre[N];
int cnt[N], cur[N];
int ord[N];

int su[N], sv[N], vis[N];
void Main() {
	cin >> n >> m;
	L(t, 1, m) {
		int u, v;
		cin >> u >> v;
		su[t] = u, sv[t] = v;
		++deg[u];
		++deg[v];
	}
	L(i, 1, n) ord[i] = i;
	sort(ord + 1, ord + n + 1, [&](int x, int y) {
		return deg[x] > deg[y];
	});
	L(i, 1, n) 
		pre[i] = pre[i - 1] + deg[ord[i]];
	
	int pos = -1;
	R(i, n, 0) {
		if(pre[i] == (ll) i * (i - 1) / 2 + m) {
			pos = i;
			break;
		}
	}
	L(i, 1, pos) vis[ord[i]] = 1;
	
	ll cnt1 = 0, cnt2 = 0;
	
	L(i, 1, n) {
		if(vis[i]) {
			if(deg[i] == pos - 1) {
				++cnt2;
			}
		} else {
			if(deg[i] == pos) {
				++cnt1;
			}
		}
	}
	
	if(!cnt1) {
		cnt1 = 1;
		L(i, 1, n) if(!vis[i] && deg[i] == pos - 1) ++cnt1;
	}
	
	if(!cnt2) {
		cnt2 = 1;
		L(i, 1, n) if(vis[i] && deg[i] == pos) ++cnt2;
	}
	
//	L(i, 1, n) cout << vis[i];
//	cout << " : ";
	cout << cnt1 << ' ' << cnt2 << '\n';
	
	L(i, 1, n) {
		deg[i] = 0, vis[i] = 0;
	}
}
int main() {
	ios :: sync_with_stdio (false);
	cin.tie (0); cout.tie (0);
	int t; cin >> t; while(t--) Main();
	return 0;
} 

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 7788kb

input:

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

output:

2 1
1 4
1 2

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 124ms
memory: 10972kb

input:

2231
1 0
5 7
4 1
3 4
3 1
3 5
4 2
3 2
4 5
5 4
2 1
2 5
2 4
2 3
5 10
3 2
2 5
1 4
4 2
4 5
1 2
1 3
3 5
3 4
1 5
5 10
1 3
2 4
1 4
5 2
2 3
1 5
5 4
1 2
3 4
5 3
5 9
2 5
3 5
2 3
2 1
4 3
3 1
4 1
4 5
2 4
5 4
4 2
4 1
4 5
4 3
5 9
4 1
4 5
3 4
2 4
2 1
3 1
2 5
3 5
3 2
5 4
2 5
2 3
2 1
2 4
5 9
5 2
1 3
4 3
1 2
5 4
4 2
5...

output:

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

result:

ok 2231 lines

Extra Test:

score: 0
Extra Test Passed