QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#174168#6634. Central Subsetcada_dia_mas_insanos#TL 303ms4728kbC++141.7kb2023-09-10 05:00:302023-09-10 05:00:30

Judging History

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

  • [2023-09-10 05:00:30]
  • 评测
  • 测评结果:TL
  • 用时:303ms
  • 内存:4728kb
  • [2023-09-10 05:00:30]
  • 提交

answer

#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
using namespace std;

typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

vector<vector<int>> g;
vector<int> colors;
vector<int> marked;
vector<int> dist;


int calc(int n){
	int lo = 1, hi = 10000;
	int ans;
	while(lo <= hi){
		int mid = (lo+hi)>>1;
		if(mid * mid >= n) {
			ans = mid;
			hi = mid - 1;
		} else {
			lo = mid + 1;
		}
	}
	return ans;
}


int main() {
	ios_base::sync_with_stdio(0),cin.tie(0);
	int t; cin >> t;
	while(t--){
		g.clear();
		colors.clear();
		dist.clear();
		marked.clear();
		int n,m; cin >> n >> m;
		g.resize(n), colors.resize(n), dist.resize(n), marked.resize(n);
		for(int i = 0; i < m;++i){
			int a,b; cin >> a >> b;
			--a,--b;
			g[a].pb(b);
			g[b].pb(a);
		}

		int upTo = calc(n);
		vector<int> taken;
		int i = 0;
		while(taken.size() != upTo){
			int j = taken.size() + 1;
			taken.pb(i);
			dist[i] = 0;
			queue<int> q;
			q.push(i);
			colors[i] = j;
			while(q.size()){
				int dad = q.front(); q.pop();
				for(auto adj: g[dad]){
					if(colors[adj] != j){
						dist[adj] = dist[dad] + 1;
						colors[adj] = j;
						q.push(adj);
					}
				}
			}
			int next = i;
			for(int k = 0; k < n;++k){
				if(dist[k] <= upTo)
					marked[k] = 1;
				else if(!marked[k] && dist[k] > dist[next])
					next = k;
			}
			if(next == i) break;
			i = next;
		}

		bool posi = 1;
		for(int i = 0; i < n && posi; ++i){
			posi = marked[i] != 0;
		}

		if(posi){
			cout << taken.size() << '\n';
			for(auto va:taken)
				cout << va + 1 << ' ';
			cout << '\n';
		} else 
			cout << -1 << '\n';

	}

	return 0;
}

详细

Test #1:

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

input:

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

output:

2
1 4 
1
1 

result:

ok correct (2 test cases)

Test #2:

score: 0
Accepted
time: 23ms
memory: 3840kb

input:

10000
15 14
13 12
5 4
9 8
11 12
15 14
10 9
14 13
2 3
2 1
6 5
10 11
3 4
7 6
8 7
6 5
2 1
2 4
4 6
2 3
3 5
10 9
8 3
9 4
5 6
5 10
3 2
5 4
2 7
1 2
4 3
2 1
2 1
2 1
2 1
9 8
9 8
5 4
1 2
6 5
3 4
3 2
7 8
7 6
2 1
1 2
14 13
3 10
5 6
2 9
11 4
2 3
2 1
8 7
13 6
5 4
5 12
6 7
4 3
7 14
16 15
2 3
2 1
6 10
6 9
6 4
9 11
...

output:

3
1 15 6 
1
1 
2
1 6 
1
1 
1
1 
3
1 9 5 
1
1 
2
1 8 
3
1 16 11 
1
1 
4
1 20 7 14 
2
1 8 
2
1 6 
2
1 16 
1
1 
3
1 15 6 
1
1 
1
1 
2
1 9 
1
1 
2
1 4 
2
1 8 
2
1 8 
2
1 18 
1
1 
3
1 15 6 
1
1 
3
1 9 13 
1
1 
1
1 
4
1 21 7 15 
3
1 9 11 
2
1 8 
3
1 16 13 
1
1 
2
1 6 
3
1 6 7 
2
1 7 
3
1 20 21 
1
1 
3
1 1...

result:

ok correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 60ms
memory: 3792kb

input:

100
2000 1999
529 528
885 884
1221 1222
375 374
245 244
758 757
711 710
1521 1522
1875 1874
749 750
823 822
1959 1958
1767 1766
155 154
631 632
825 824
1330 1331
457 456
1344 1343
1817 1818
413 414
582 583
1828 1827
1335 1336
654 655
162 161
1668 1667
1966 1967
1472 1471
1185 1184
518 517
1509 1510
...

output:

44
1 2000 47 1954 93 1908 139 1862 185 1816 231 1770 277 1724 323 1678 369 1632 415 1586 461 1540 507 1494 553 1448 599 1402 645 1356 691 1310 737 1264 783 1218 829 1172 875 1126 921 1080 967 1034 
1
1 
23
1 1001 1046 1956 1090 1912 1134 1868 1178 1824 1222 1780 1266 1736 1310 1692 1354 1648 1398 16...

result:

ok correct (100 test cases)

Test #4:

score: 0
Accepted
time: 303ms
memory: 4728kb

input:

10
14914 14913
13959 13958
3643 3642
4582 4581
13378 13379
981 980
12901 12902
12355 12356
14692 14691
9670 9669
14632 14631
1441 1440
1367 1368
6237 6238
8297 8298
1021 1020
5096 5097
4773 4774
7778 7779
3013 3014
5536 5535
11621 11620
13904 13903
3050 3049
14179 14178
7471 7472
13380 13381
7403 74...

output:

121
1 14914 125 14790 249 14666 373 14542 497 14418 621 14294 745 14170 869 14046 993 13922 1117 13798 1241 13674 1365 13550 1489 13426 1613 13302 1737 13178 1861 13054 1985 12930 2109 12806 2233 12682 2357 12558 2481 12434 2605 12310 2729 12186 2853 12062 2977 11938 3101 11814 3225 11690 3349 11566...

result:

ok correct (10 test cases)

Test #5:

score: 0
Accepted
time: 71ms
memory: 4500kb

input:

10
20000 19999
6831 6760
15763 15900
10362 10184
5821 5880
17555 17389
16708 16574
11592 11436
186 209
19380 19313
8867 8718
12100 12237
16245 16110
18464 18568
4713 4665
17412 17578
18666 18750
4360 4322
12350 12502
4054 4103
2874 2849
8097 8202
14489 14639
1056 1016
13500 13581
2435 2391
199 173
8...

output:

11
1 20000 7289 19977 14594 19941 11213 19093 6991 18322 15162 
11
1 20000 11158 19870 10826 19460 9522 19318 18840 11087 11554 
12
1 20000 7494 19817 7393 19502 6416 18475 7751 16488 10920 15331 
11
1 19999 19966 19783 17110 16429 14901 11965 10313 11541 11460 
10
1 20000 19962 17517 16438 15491 12...

result:

ok correct (10 test cases)

Test #6:

score: -100
Time Limit Exceeded

input:

1
200000 199999
136649 136648
44943 44944
7148 7149
50332 50333
149967 149966
28976 28975
78549 78550
178698 178697
96434 96433
7859 7858
88976 88977
23348 23347
161682 161681
125393 125392
67892 67893
73592 73593
179054 179055
110841 110842
163714 163715
7982 7981
56309 56310
196486 196485
19176 19...

output:


result: