QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#282587 | #5404. 述树术 | zhoukangyang | 11.017667 | 30ms | 4412kb | C++14 | 2.2kb | 2023-12-12 14:41:41 | 2023-12-12 14:44:32 |
Judging History
answer
//test
#include <bits/stdc++.h>
using namespace std;
#include "tree.h"
namespace flower {
constexpr int N = 1010;
bitset<N> G[N], vis[N];
int tot;
int ask(int x, int y) {
if(x == y) return 1;
if(x > y) swap(x, y);
if(vis[x][y]) return G[x][y];
vis[x][y] = 1;
G[x][y] = Query({x, y}) == 2;
tot ++;
return G[x][y];
}
int use[N], bel[N], cnt[N];
void solve(int n) {
vector<vector<int>> tree;
vector<int> fa, dep, kth;
int tot = n;
mt19937 hua(20000724);
vector<int> ord(n);
iota(ord.begin(), ord.end(), 1);
shuffle(ord.begin(), ord.end(), hua);
for(auto i : ord) if(!use[i]) {
vector<int> chain;
chain.emplace_back(i);
auto tryins = [&] (int x) {
int B = 50;
for(auto y : chain) {
if(!--B) return true;
if(!ask(x, y)) return false;
}
return true;
};
for(int j = 1; j <= n; j ++) if(j != i && !use[j]) {
if(tryins(j)) {
chain.emplace_back(j);
}
if(tot > 1e5) {
Report(-1, -1);
return ;
}
}
int curdep = 0;
int id = tree.size();
tree.emplace_back(chain);
fa.emplace_back(-1);
kth.emplace_back();
for(int j = 1; j <= n; j ++) if(use[j] && dep[bel[j]] > curdep) {
if(tryins(j)) {
curdep = dep[bel[j]];
fa.back() = bel[j];
}
}
dep.emplace_back(curdep + 1);
for(auto x : chain) bel[x] = id, use[x] = 1;
for(int j = 1; j <= n; j ++) if(use[j] && bel[j] == fa.back()) {
if(tryins(j)) {
cnt[j] ++;
kth.back() ++;
}
}
}
vector<vector<int>> G(tree.size());
for(int i = 0; i < tree.size(); i ++) if(fa[i] != -1) {
G[fa[i]].emplace_back(i);
}
vector<pair<int, int>> edge;
for(int i = 0; i < tree.size(); i ++) {
sort(tree[i].begin(), tree[i].end(), [&] (int x, int y){return cnt[x] > cnt[y];});
for(int j = 1; j < tree[i].size(); j ++) {
if(cnt[tree[i][j]] == cnt[tree[i][j - 1]]) {
Report(-1, -1);
return ;
}
edge.emplace_back(tree[i][j], tree[i][j - 1]);
}
if(fa[i] != -1) {
edge.emplace_back(tree[i][0], tree[fa[i]][kth[i] - 1]);
}
}
assert(edge.size() == n - 1);
for(auto [u, v] : edge) {
Report(v, u);
}
}
}
void Solve(int N) {
return flower::solve(N);
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 11.0177
Acceptable Answer
Test #1:
score: 11.0244
Acceptable Answer
time: 7ms
memory: 4348kb
input:
499 7890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
output:
1 99852
result:
points 0.22048823220 x = 99852
Test #2:
score: 12.3337
Acceptable Answer
time: 9ms
memory: 4180kb
input:
499 7890 0 0 0 0 0 0 187 351 0 0 337 475 82 233 0 0 0 0 448 134 0 0 5 386 0 0 0 0 343 20 244 442 0 0 392 397 0 0 444 223 180 243 0 0 455 241 40 256 340 346 214 128 0 0 315 451 57 320 0 0 0 0 105 446 287 126 0 0 0 0 122 22 0 0 0 0 0 0 21 305 0 0 60 182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 224 9 80 7 294 0...
output:
1 70243
result:
points 0.24667351120 x = 70243
Test #3:
score: 11.8695
Acceptable Answer
time: 7ms
memory: 4180kb
input:
499 7890 0 0 0 0 0 0 145 106 187 3 0 0 0 0 226 44 0 0 0 0 0 0 397 112 0 0 0 0 250 183 365 61 151 302 276 25 0 0 295 136 152 273 256 23 213 351 0 0 0 0 384 240 38 478 0 0 0 0 217 300 79 10 462 288 0 0 0 0 0 0 0 0 0 0 148 311 0 0 0 0 0 0 193 419 270 377 0 0 84 281 0 0 178 451 153 105 133 21 211 283 28...
output:
1 78924
result:
points 0.23739066370 x = 78924
Test #4:
score: 11.6457
Acceptable Answer
time: 8ms
memory: 4072kb
input:
499 7890 0 0 0 0 0 0 163 73 0 0 189 485 0 0 476 293 0 0 0 0 0 0 0 0 447 422 371 118 0 0 24 219 0 0 0 0 0 0 273 25 0 0 0 0 179 419 349 159 0 0 0 0 449 92 0 0 121 412 127 218 0 0 0 0 356 54 39 62 354 370 0 0 247 41 329 369 48 400 0 0 283 402 0 0 0 0 0 0 132 119 0 0 416 302 220 372 0 0 105 312 266 176 ...
output:
1 83740
result:
points 0.23291369130 x = 83740
Test #5:
score: 11.7939
Acceptable Answer
time: 8ms
memory: 4068kb
input:
499 7890 0 0 61 429 212 422 0 0 0 0 139 378 0 0 0 0 0 0 207 72 0 0 0 0 371 441 0 0 199 413 60 266 416 363 468 454 419 5 0 0 414 39 126 52 31 113 0 0 140 134 35 444 0 0 0 0 395 455 23 291 69 387 203 274 0 0 0 0 0 0 0 0 0 0 438 487 0 0 0 0 57 467 16 153 0 0 0 0 0 0 0 0 0 0 0 0 146 196 284 390 121 380 ...
output:
1 80500
result:
points 0.23587876760 x = 80500
Test #6:
score: 11.6342
Acceptable Answer
time: 8ms
memory: 4100kb
input:
499 7890 0 0 289 462 395 207 453 204 0 0 0 0 0 0 0 0 479 312 0 0 108 100 5 211 279 270 0 0 423 365 0 0 0 0 0 0 0 0 9 132 0 0 0 0 11 304 0 0 0 0 428 232 0 0 0 0 0 0 0 0 407 131 349 88 174 415 386 296 404 444 0 0 355 64 0 0 448 139 91 199 0 0 205 299 0 0 123 67 0 0 0 0 0 0 0 0 414 2 0 0 397 127 309 22...
output:
1 83999
result:
points 0.23268453340 x = 83999
Test #7:
score: 11.8632
Acceptable Answer
time: 8ms
memory: 4108kb
input:
499 7890 0 0 0 0 0 0 293 172 234 459 272 292 71 177 0 0 0 0 0 0 484 444 143 244 0 0 310 33 0 0 46 74 110 356 280 263 0 0 0 0 0 0 0 0 411 181 0 0 0 0 455 281 0 0 0 0 203 44 0 0 0 0 260 13 182 397 187 88 0 0 0 0 0 0 155 75 23 496 0 0 66 443 159 174 185 274 0 0 278 213 424 92 0 0 126 478 399 168 0 0 0 ...
output:
1 79055
result:
points 0.23726316430 x = 79055
Test #8:
score: 11.2951
Acceptable Answer
time: 8ms
memory: 4100kb
input:
499 7890 0 0 0 0 0 0 0 0 0 0 111 454 0 0 397 253 400 478 283 213 179 2 0 0 239 172 303 304 128 457 0 0 0 0 288 88 0 0 308 263 0 0 0 0 0 0 0 0 341 280 15 59 214 29 0 0 0 0 416 3 93 233 451 319 0 0 0 0 90 140 0 0 0 0 0 0 197 159 6 266 27 427 0 0 365 154 293 193 0 0 270 321 0 0 44 33 0 0 461 198 32 186...
output:
1 92278
result:
points 0.22590282080 x = 92278
Test #9:
score: 12.1339
Acceptable Answer
time: 8ms
memory: 4380kb
input:
499 7890 120 69 312 89 0 0 0 0 0 0 0 0 0 0 0 0 59 407 372 342 0 0 63 141 227 269 0 0 0 0 0 0 50 329 0 0 0 0 185 285 40 211 104 194 0 0 0 0 234 439 327 246 245 461 405 204 88 10 0 0 0 0 34 57 0 0 0 0 128 143 0 0 0 0 49 13 26 393 455 190 0 0 0 0 147 18 0 0 0 0 459 318 0 0 313 256 476 111 0 0 440 58 44...
output:
1 73783
result:
points 0.24267708910 x = 73783
Test #10:
score: 12.1871
Acceptable Answer
time: 8ms
memory: 4376kb
input:
499 7890 357 56 0 0 0 0 0 0 0 0 144 333 171 156 0 0 0 0 0 0 180 437 0 0 0 0 0 0 0 0 0 0 0 0 207 224 0 0 0 0 0 0 0 0 0 0 364 84 0 0 0 0 466 25 0 0 375 148 0 0 0 0 0 0 0 0 331 319 483 18 244 240 450 187 456 142 0 0 444 492 100 283 35 317 0 0 188 10 0 0 0 0 0 0 0 0 281 152 343 64 477 5 378 76 413 198 0...
output:
1 72813
result:
points 0.24374108750 x = 72813
Test #11:
score: 12.1986
Acceptable Answer
time: 8ms
memory: 4096kb
input:
499 7890 279 484 54 69 0 0 448 262 161 173 0 0 460 214 0 0 60 301 0 0 0 0 457 80 464 165 0 0 47 18 0 0 232 273 0 0 0 0 0 0 23 436 0 0 377 305 0 0 488 138 0 0 0 0 123 178 63 14 0 0 0 0 0 0 476 218 0 0 0 0 0 0 0 0 0 0 225 217 131 498 408 122 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 386 0 0 434 443 30 357 1...
output:
1 72606
result:
points 0.24397109480 x = 72606
Test #12:
score: 12.2672
Acceptable Answer
time: 5ms
memory: 4384kb
input:
499 7890 0 0 262 277 2 148 0 0 174 417 0 0 293 162 0 0 0 0 113 8 0 0 0 0 214 59 0 0 0 0 414 47 0 0 0 0 0 0 124 360 0 0 184 348 0 0 78 49 0 0 280 119 346 315 390 71 0 0 301 19 0 0 0 0 388 127 114 207 0 0 0 0 327 91 216 338 0 0 129 103 0 0 0 0 0 0 208 292 222 156 373 451 0 0 353 337 0 0 485 149 0 0 0 ...
output:
1 71389
result:
points 0.2453449550 x = 71389
Test #13:
score: 12.3991
Acceptable Answer
time: 3ms
memory: 4376kb
input:
499 7890 270 456 0 0 0 0 128 434 0 0 225 392 0 0 0 0 54 148 407 278 0 0 0 0 0 0 41 119 77 232 378 374 419 129 420 207 0 0 125 357 0 0 0 0 55 310 0 0 0 0 39 339 388 3 0 0 0 0 0 0 108 330 0 0 0 0 0 0 0 0 60 100 0 0 0 0 181 454 0 0 417 120 0 0 145 190 0 0 319 256 2 421 0 0 0 0 0 0 0 0 136 422 153 96 10...
output:
1 69143
result:
points 0.24798195430 x = 69143
Test #14:
score: 12.3276
Acceptable Answer
time: 5ms
memory: 4380kb
input:
499 7890 370 175 213 404 0 0 0 0 0 0 0 0 0 0 236 474 441 371 250 79 417 159 0 0 0 0 0 0 132 483 0 0 71 162 392 428 0 0 0 0 221 424 214 437 45 88 0 0 74 239 0 0 0 0 186 355 22 64 0 0 349 409 163 35 43 136 0 0 0 0 0 0 171 365 408 492 0 0 107 36 4 241 106 201 268 254 150 278 225 147 486 473 419 235 444...
output:
1 70346
result:
points 0.24655268130 x = 70346
Test #15:
score: 12.3424
Acceptable Answer
time: 8ms
memory: 4380kb
input:
499 7890 376 112 114 360 0 0 0 0 0 0 172 486 0 0 158 490 0 0 218 73 375 479 336 155 0 0 0 0 120 11 150 496 37 403 401 380 0 0 0 0 133 122 205 278 410 62 448 228 245 170 0 0 0 0 251 472 135 236 140 406 435 85 0 0 214 431 0 0 151 246 0 0 0 0 292 127 305 347 0 0 0 0 0 0 442 224 453 226 0 0 123 438 0 0 ...
output:
1 70094
result:
points 0.24684880930 x = 70094
Test #16:
score: 12.3595
Acceptable Answer
time: 8ms
memory: 4092kb
input:
499 7890 0 0 0 0 0 0 0 0 62 451 0 0 283 419 0 0 228 327 0 0 403 496 0 0 444 180 34 279 0 0 0 0 0 0 0 0 366 201 0 0 0 0 431 248 0 0 0 0 0 0 171 63 207 498 387 46 0 0 325 270 165 8 115 103 428 466 303 346 98 249 0 0 0 0 0 0 0 0 321 478 0 0 0 0 0 0 182 164 185 226 0 0 0 0 213 44 0 0 416 417 0 0 69 359 ...
output:
1 69805
result:
points 0.24719053210 x = 69805
Test #17:
score: 12.4022
Acceptable Answer
time: 8ms
memory: 4112kb
input:
499 7890 458 88 425 362 0 0 0 0 0 0 0 0 0 0 396 442 0 0 113 388 401 187 0 0 82 115 0 0 367 489 173 48 0 0 19 370 208 209 0 0 374 219 0 0 0 0 45 86 0 0 0 0 280 409 177 476 0 0 0 0 37 327 475 285 0 0 21 144 6 207 0 0 8 334 257 379 57 351 0 0 0 0 0 0 224 294 0 0 391 116 488 31 0 0 120 211 490 293 421 1...
output:
1 69092
result:
points 0.24804343120 x = 69092
Test #18:
score: 12.1343
Acceptable Answer
time: 4ms
memory: 4132kb
input:
499 7890 0 0 109 334 0 0 301 141 0 0 0 0 127 454 222 485 0 0 133 451 0 0 282 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 165 28 388 1 0 0 0 0 0 0 308 57 0 0 340 330 231 183 321 476 0 0 226 326 0 0 386 39 30 200 44 160 0 0 350 198 0 0 467 32 0 0 137 59 0 0 0 0 0 0 70 325 49 34 0 0 230 216 0 0 410 449 299 472 245 ...
output:
1 73774
result:
points 0.24268685810 x = 73774
Test #19:
score: 11.9721
Acceptable Answer
time: 8ms
memory: 4096kb
input:
499 7890 0 0 86 259 323 47 0 0 0 0 0 0 0 0 424 172 202 337 428 461 283 197 0 0 210 208 485 25 0 0 0 0 0 0 417 20 0 0 0 0 88 425 0 0 0 0 0 0 301 396 250 256 130 164 0 0 74 276 0 0 0 0 153 101 0 0 0 0 0 0 247 87 0 0 0 0 390 447 450 32 243 216 70 255 0 0 0 0 19 364 0 0 0 0 0 0 203 471 288 66 245 84 146...
output:
1 76863
result:
points 0.23944204440 x = 76863
Test #20:
score: 12.4051
Acceptable Answer
time: 8ms
memory: 4112kb
input:
499 7890 0 0 306 330 0 0 0 0 320 310 0 0 0 0 0 0 0 0 0 0 179 423 149 256 0 0 0 0 129 146 371 386 83 74 318 253 401 177 42 144 0 0 0 0 339 267 0 0 0 0 0 0 115 172 0 0 464 215 252 105 0 0 0 0 0 0 0 0 388 482 344 148 328 313 154 442 0 0 334 221 0 0 0 0 389 449 0 0 0 0 140 424 0 0 0 0 122 21 211 406 322...
output:
1 69044
result:
points 0.24810135850 x = 69044
Test #21:
score: 12.3411
Acceptable Answer
time: 8ms
memory: 4100kb
input:
499 7890 430 466 263 264 275 360 389 36 0 0 0 0 349 111 88 218 432 132 0 0 183 351 260 130 209 182 0 0 0 0 450 256 0 0 0 0 440 28 38 388 454 142 0 0 0 0 212 171 0 0 117 372 0 0 77 213 245 423 8 97 0 0 484 422 359 442 0 0 0 0 0 0 356 140 0 0 0 0 214 19 310 428 250 73 75 480 0 0 124 220 0 0 0 0 0 0 0 ...
output:
1 70116
result:
points 0.24682288860 x = 70116
Test #22:
score: 12.4832
Acceptable Answer
time: 8ms
memory: 4068kb
input:
499 7890 0 0 0 0 0 0 39 416 377 94 329 86 433 417 0 0 444 403 0 0 449 452 310 52 0 0 248 136 0 0 177 64 69 90 399 195 159 428 85 240 288 229 203 457 7 133 0 0 306 125 10 215 0 0 0 0 224 228 80 184 151 100 367 359 471 462 389 483 343 12 0 0 400 252 480 467 0 0 60 137 0 0 0 0 16 254 0 0 0 0 463 198 43...
output:
1 67769
result:
points 0.24966420010 x = 67769
Test #23:
score: 12.4265
Acceptable Answer
time: 8ms
memory: 4108kb
input:
499 7890 232 102 0 0 0 0 0 0 0 0 234 148 0 0 203 41 0 0 409 306 0 0 0 0 0 0 395 414 0 0 491 479 262 137 146 481 59 420 0 0 0 0 0 0 0 0 0 0 189 296 0 0 422 266 89 124 349 190 0 0 0 0 466 163 257 260 337 107 334 66 0 0 470 287 0 0 301 243 0 0 434 432 433 185 326 447 0 0 0 0 348 125 0 0 429 227 281 182...
output:
1 68691
result:
points 0.24852936780 x = 68691
Test #24:
score: 12.1422
Acceptable Answer
time: 7ms
memory: 4160kb
input:
499 7890 234 323 128 190 51 419 0 0 136 344 0 0 0 0 260 311 0 0 105 490 0 0 362 456 0 0 496 67 239 131 0 0 188 282 59 34 96 285 399 194 0 0 0 0 126 435 300 286 0 0 395 279 0 0 5 488 478 238 72 462 0 0 135 133 0 0 486 372 0 0 0 0 118 370 0 0 0 0 0 0 0 0 0 0 0 0 80 489 0 0 272 54 0 0 87 261 0 0 0 0 0 ...
output:
1 73629
result:
points 0.24284451110 x = 73629
Test #25:
score: 12.4825
Acceptable Answer
time: 8ms
memory: 4380kb
input:
499 7890 96 437 0 0 103 349 0 0 235 282 255 249 0 0 135 167 0 0 0 0 51 365 120 95 408 134 0 0 348 146 66 470 305 369 0 0 400 486 0 0 0 0 472 80 205 412 287 346 499 70 0 0 0 0 389 104 89 299 119 219 0 0 57 202 0 0 0 0 48 69 58 334 335 495 0 0 398 279 0 0 471 314 0 0 0 0 414 91 0 0 56 228 0 0 0 0 0 0 ...
output:
1 67781
result:
points 0.24964927030 x = 67781
Test #26:
score: 12.5354
Acceptable Answer
time: 7ms
memory: 4104kb
input:
499 7890 0 0 0 0 0 0 269 126 187 484 0 0 0 0 400 4 0 0 93 73 0 0 324 467 298 372 0 0 0 0 176 437 338 413 156 193 0 0 0 0 0 0 0 0 259 274 0 0 169 99 137 357 30 17 469 20 0 0 0 0 353 173 365 494 0 0 11 432 0 0 445 284 0 0 142 5 211 381 0 0 87 65 376 392 86 287 0 0 312 242 371 451 444 53 387 148 0 0 0 ...
output:
1 66938
result:
points 0.25070857860 x = 66938
Test #27:
score: 12.2444
Acceptable Answer
time: 7ms
memory: 4068kb
input:
499 7890 371 440 0 0 0 0 0 0 0 0 71 96 384 283 0 0 0 0 211 434 0 0 485 221 0 0 89 25 20 271 0 0 295 468 389 246 0 0 0 0 0 0 0 0 0 0 157 57 31 238 0 0 373 347 0 0 256 68 60 250 0 0 0 0 319 13 332 448 82 175 0 0 287 286 0 0 0 0 491 475 72 390 0 0 0 0 129 493 0 0 207 284 0 0 344 478 0 0 317 361 0 0 432...
output:
1 71790
result:
points 0.24488814030 x = 71790
Test #28:
score: 11.0177
Acceptable Answer
time: 8ms
memory: 4384kb
input:
499 7890 46 439 111 336 0 0 282 340 0 0 0 0 269 144 374 373 0 0 491 16 250 358 62 452 409 201 152 351 0 0 221 379 169 302 494 364 0 0 0 0 0 0 327 326 0 0 383 372 15 335 0 0 0 0 0 0 451 41 419 34 0 0 400 1 361 18 186 196 0 0 0 0 0 0 347 149 294 75 203 423 161 103 81 80 6 448 0 0 0 0 0 0 0 0 180 417 0...
output:
1 100053
result:
points 0.22035334930 x = 100053
Test #29:
score: 50
Accepted
time: 0ms
memory: 3924kb
input:
3 7890 0 0 1 3 0 0 1
output:
1 3
result:
points 1.0 x = 3
Subtask #2:
score: 0
Wrong Answer
Test #30:
score: 0
Wrong Answer
time: 30ms
memory: 4412kb
input:
999 16789 0 0 0 0 0 0 495 639 428 443 0 0 511 28 0 0 0 0 0 0 0 0 31 729 899 866 429 959 357 322 795 615 235 620 0 0 0 0 85 389 33 50 234 522 276 468 480 269 0 0 705 536 0 0 87 446 889 578 86 472 0 0 699 53 0 0 706 976 381 493 0 0 441 164 0 0 0 0 0 0 283 215 0 0 113 208 334 225 372 487 0 0 878 418 0 ...
output:
0 Too many queries.
result:
wrong answer Too