QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#830161 | #9914. 前往何方 | kgqy | 0 | 274ms | 6056kb | C++14 | 1.9kb | 2024-12-24 16:26:40 | 2024-12-24 16:26:40 |
Judging History
answer
#include<bits/stdc++.h>
#include "wheretoreach.h"
using namespace std;
int al,ed;
int tims;
vector<int> vec;
vector<int> tv,ct;
int rk[100005];
int vis[100005];
int tadd(int u){
vis[rk[u]]=1;
return add(rk[u]);
}
int tremove(int u){
if(!vis[rk[u]]) return 0;
vis[rk[u]]=0;
return remove(rk[u]);
}
void treport(int u,int v){
tims++;
report(rk[u],rk[v]);
}
void bs(int l,int r,vector<int> nt){
if(!nt.size()) return;
if(tims==al-1) return;
// printf("lr %d %d\nnt:",l,r);
// for(int i=0;i<nt.size();i++) printf("%d ",nt[i]);puts("");
if(l==r){
for(int i=0;i<nt.size();i++){
// printf("REPORTER %d %d\n",nt[i],tv[l]);
treport(nt[i],tv[l]);
}
return;
}
vector<int> lt,rt;
int mid=(l+r)>>1;
if(l!=0||r!=ed)
for(int i=l;i<=mid;i++) tadd(tv[i]);
for(int i=0;i<nt.size();i++){
int p=tadd(nt[i]);
if(p>1) lt.push_back(nt[i]);
else rt.push_back(nt[i]);
tremove(nt[i]);
}
for(int i=l;i<=mid;i++) tremove(tv[i]);
bs(l,mid,lt);
if(tims==al-1) return;
if(lt.size()){
for(int i=mid+1;i<=r;i++) tadd(tv[i]);
for(int i=0;i<lt.size();i++){
int p=tadd(lt[i]);
if(p>1) rt.push_back(lt[i]);
tremove(lt[i]);
}
for(int i=mid+1;i<=r;i++) tremove(tv[i]);
}
bs(mid+1,r,rt);
}
void mian(){
tv.clear();ct.clear();
for(int i=1;i<=al;i++) vis[i]=0;
for(int i=0;i<vec.size();i++){
int p=tadd(vec[i]);
if(p>1) ct.push_back(vec[i]),tremove(vec[i]);
else tv.push_back(vec[i]);
}
// for(int i=0;i<tv.size();i++) printf("%d ",tv[i]);puts("");
if(!ct.size()) return vec.clear();
int mid=(0+tv.size())>>1;
ed=tv.size()-1;
for(int i=mid+1;i<tv.size();i++) tremove(tv[i]);
bs(0,tv.size()-1,ct);
vec=ct;
if(tims==al-1) vec.clear();
}
void solve(int n){
al=n;
for(int i=1;i<=n;i++) rk[i]=i,vec.push_back(i);
mt19937 lrher(time(0));
shuffle(rk+1,rk+1+n,lrher);
while(vec.size()) mian();
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 4ms
memory: 4316kb
input:
500 310 77 468 235 218 93 58 406 223 334 159 243 204 48 144 107 492 288 447 165 102 407 340 299 450 126 140 234 209 62 111 204 453 306 4 476 126 358 183 317 360 489 149 158 232 22 326 372 92 383 410 24 199 14 401 480 69 329 192 167 409 152 426 354 435 60 146 404 334 187 208 305 123 55 30 79 469 72 2...
output:
-1 1
result:
wrong answer Wrong Answer (or #queries exceeded).
Subtask #2:
score: 0
Wrong Answer
Test #9:
score: 20
Accepted
time: 41ms
memory: 6056kb
input:
2500 887 818 1296 878 1605 2107 803 2410 1919 1135 860 1160 1364 2414 1375 500 894 2173 2322 2449 211 1732 1821 573 413 1556 1574 1977 709 162 2002 1577 1626 1895 1563 688 2151 2293 661 69 317 1170 2335 1549 1481 1349 1500 779 1593 735 1824 2380 639 2334 1496 2335 1956 1384 2476 1583 1035 163 720 70...
output:
123606 2
result:
ok Accepted. 123606 queries used.
Test #10:
score: 20
Accepted
time: 42ms
memory: 4668kb
input:
2500 1186 1927 2337 1044 1440 973 1563 297 1771 1852 921 834 1121 2156 679 211 1146 2132 1537 825 821 1240 1372 133 77 174 2453 1807 1357 550 1620 2020 2024 528 1666 1812 720 900 1243 2090 1665 1738 445 1306 2039 1721 1370 930 948 2331 521 121 1581 2059 1752 2039 218 785 988 2477 121 2462 578 503 11...
output:
124983 2
result:
ok Accepted. 124983 queries used.
Test #11:
score: 20
Accepted
time: 45ms
memory: 4876kb
input:
2500 778 2243 2254 352 1211 233 607 2369 1908 1499 2053 1966 1790 438 1032 703 898 2 1461 1159 1757 2022 1030 753 1123 2124 2346 528 1604 1207 341 1255 2435 999 526 888 1881 1472 251 618 1381 1303 981 1982 130 809 1623 1399 2229 1011 1836 1243 277 2147 588 1119 1980 1235 19 1795 734 2088 845 1841 89...
output:
125373 2
result:
ok Accepted. 125373 queries used.
Test #12:
score: 0
Wrong Answer
time: 32ms
memory: 4664kb
input:
2500 1883 628 95 1337 203 1367 2078 760 115 2231 786 1486 931 248 2064 1215 336 193 175 1360 844 284 1105 102 2413 1374 2017 399 1321 947 2194 1969 2305 390 2193 1452 48 534 974 1439 2133 1727 2209 216 631 861 2279 1004 241 1797 2298 59 790 186 897 855 460 620 841 1701 1709 1541 403 95 909 1553 975 ...
output:
-1 2
result:
wrong answer Wrong Answer (or #queries exceeded).
Subtask #3:
score: 0
Wrong Answer
Test #17:
score: 70
Accepted
time: 255ms
memory: 5796kb
input:
10000 6139 8917 131 5800 5366 5247 1298 5035 3966 3518 4889 7202 6547 1919 5829 9494 8012 6029 3868 6403 1909 8116 5734 6122 2683 4779 9275 6673 7433 9042 7646 2032 3547 6306 1943 8382 4061 6428 8240 3548 460 2795 3451 4320 5904 6627 8709 7621 8706 3534 748 4873 8101 4261 5359 3304 6254 4687 6492 53...
output:
593132 3
result:
ok Accepted. 593132 queries used.
Test #18:
score: 0
Wrong Answer
time: 274ms
memory: 5772kb
input:
10000 2681 8564 3271 4429 6658 3180 2428 7273 8907 2727 5939 1929 2539 1768 7178 7722 3420 8555 1346 811 3608 2345 6181 6871 5539 8722 4731 8049 8581 7954 3979 384 9678 3503 7073 6690 240 7950 16 7004 1591 8818 5422 3777 3382 852 1805 6181 1965 2752 6507 7858 9373 4985 6912 2901 9954 4194 1029 7631 ...
output:
-1 3
result:
wrong answer Wrong Answer (or #queries exceeded).