QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#682535 | #9519. Build a Computer | ucup-team2432# | AC ✓ | 4ms | 35992kb | C++20 | 2.8kb | 2024-10-27 15:53:41 | 2024-10-27 15:53:42 |
Judging History
answer
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#define ll long long
#define all(v) v.begin(),v.end()
#define sz(v) ((ll)v.size())
#define V vector
#define vi V<int>
#define vll V<ll>
#define eb emplace_back
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define A array
#define pb push_back
#define mset multiset
#define gpumap __gnu_pbds::gp_hash_table
#define ccumap __gnu_pbds::cc_hash_table
#define ui unsigned int
#define ull unsigned ll
#define i128 __int128
#define whtest if (test)
#define cerr whtest cerr
#define freopen whtest freopen
using namespace std;
constexpr int test = 0;
namespace jhsy {
struct Seg {
#define ls (x<<1)
#define rs (ls|1)
int n,cnt{}; vi id,leaf;
Seg(int n):n(n),id(n*4),leaf(n*4) {}
int work(int x,int l,int r,int pl,int pr,V<V<pii>> &vec,V<V<pii>> &sp) {
if (pl >= r || pr <= l) {
return -1;
}
if (pl <= l && r <= pr) {
leaf[x] = r-l;
return -1;
}
if (l != 0 || x == 1) {
id[x] = cnt++;
vec.eb(); sp.eb();
}
else {
id[x] = id[1];
}
int p = id[x];
int mid = l+((r-l)>>1);
{
int q = work(ls,l,mid,pl,pr,vec,sp);
if (p != q) {
if (q != -1) {
vec[p].eb(q,0);
}
else if (leaf[ls]) {
sp[p].eb(leaf[ls],0);
}
}
}
{
int q = work(rs,mid,r,pl,pr,vec,sp);
if (p != q) {
if (q != -1) {
vec[p].eb(q,1);
}
else if (leaf[rs]) {
sp[p].eb(leaf[rs],1);
}
}
}
return id[x];
}
auto work(int pl,int pr,V<V<pii>> &vec,V<V<pii>> &sp) {
work(1,0,n,pl,pr,vec,sp);
}
};
void main() {
int l,r;
cin >> l >> r; r++;
auto clg = [&](int x) {
int k = __lg(x);
if (x != (1<<k)) {
k++;
}
return k;
};
const int lg = clg(r),n = 1<<lg;
Seg seg(n);
V<V<pii>> vec,sp;
seg.work(l,r,vec,sp);
int cnt = seg.cnt,mx = 0;
for (auto &p:sp) {
for (auto &[x,_]:p) {
x = __lg(x);
mx = max(mx,x);
}
}
vi chs(mx+1);
for (int i = 0; i <= mx; i++) {
chs[i] = cnt++; vec.eb();
}
for (int i = mx; i >= 1; i--) {
for (int j = 0; j < 2; j++) {
vec[chs[i]].eb(chs[i-1],j);
}
}
for (int i = 0; i < sz(sp); i++) {
for (auto [x,k]:sp[i]) {
vec[i].eb(chs[x],k);
}
}
cout << sz(vec) << '\n';
for (auto p:vec) {
cout << sz(p);
for (auto [x,k]:p) {
cout << ' ' << x+1 << ' ' << k;
}
cout << '\n';
}
}
}
int main() {
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(20);
// jhsy::init();
int T = 1;
// cin >> T;
while (T--) {
jhsy::main();
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3532kb
input:
5 7
output:
5 1 2 1 2 3 0 5 1 1 4 1 0 2 4 0 4 1
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 3548kb
input:
10 27
output:
9 2 2 1 4 1 2 3 0 8 1 1 7 1 2 5 1 9 0 1 8 0 0 2 6 0 6 1 2 7 0 7 1 2 8 0 8 1
result:
ok ok
Test #3:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
5 13
output:
8 2 2 1 4 1 2 3 0 7 1 1 6 1 2 5 1 8 0 1 7 0 0 2 6 0 6 1 2 7 0 7 1
result:
ok ok
Test #4:
score: 0
Accepted
time: 4ms
memory: 35872kb
input:
1 1000000
output:
39 20 2 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 30 1 31 1 32 1 33 1 34 1 35 1 36 1 37 1 38 1 39 1 2 3 1 39 0 2 4 1 38 0 2 5 1 37 0 1 6 0 2 7 1 35 0 1 8 0 1 9 0 1 10 0 1 11 0 2 12 1 30 0 1 13 0 1 14 0 2 15 1 27 0 1 16 0 1 17 0 1 18 0 1 19 0 1 20 0 1 21 0 0 2 21 0 21 1 2 22 0 22 1 2 23 0 23 1 2...
result:
ok ok
Test #5:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
1 1
output:
2 1 2 1 0
result:
ok ok
Test #6:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
7 9
output:
7 2 2 1 4 1 1 3 1 1 6 1 1 5 0 1 7 0 0 2 6 0 6 1
result:
ok ok
Test #7:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
3 7
output:
5 2 2 1 5 1 1 3 1 0 2 3 0 3 1 2 4 0 4 1
result:
ok ok
Test #8:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
1 5
output:
4 3 2 1 3 1 4 1 1 4 0 0 2 3 0 3 1
result:
ok ok
Test #9:
score: 0
Accepted
time: 0ms
memory: 3748kb
input:
1 4
output:
5 3 2 1 4 1 5 1 1 3 0 1 4 0 0 2 4 0 4 1
result:
ok ok
Test #10:
score: 0
Accepted
time: 0ms
memory: 3800kb
input:
8 9
output:
5 1 2 1 1 3 0 1 5 0 0 2 4 0 4 1
result:
ok ok
Test #11:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
7 51
output:
11 4 2 1 4 1 10 1 11 1 1 3 1 1 7 1 2 5 1 11 0 1 6 0 1 9 0 0 2 7 0 7 1 2 8 0 8 1 2 9 0 9 1 2 10 0 10 1
result:
ok ok
Test #12:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
51 79
output:
13 2 2 1 7 1 1 3 1 2 4 0 12 1 2 5 0 11 1 1 6 1 1 9 1 1 8 0 1 13 0 0 2 9 0 9 1 2 10 0 10 1 2 11 0 11 1 2 12 0 12 1
result:
ok ok
Test #13:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
92 99
output:
11 1 2 1 2 3 0 6 1 1 4 1 1 5 1 1 11 1 1 7 0 1 8 0 1 11 0 0 2 9 0 9 1 2 10 0 10 1
result:
ok ok
Test #14:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
27 36
output:
13 2 2 1 6 1 1 3 1 2 4 0 13 1 1 5 1 1 11 1 1 7 0 1 8 0 2 9 1 13 0 1 10 0 1 11 0 0 2 11 0 11 1 2 12 0 12 1
result:
ok ok
Test #15:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
55 84
output:
17 2 2 1 7 1 1 3 1 2 4 0 16 1 1 5 1 1 6 1 1 13 1 1 8 0 2 9 1 17 0 1 10 0 2 11 1 15 0 1 12 0 1 13 0 0 2 13 0 13 1 2 14 0 14 1 2 15 0 15 1 2 16 0 16 1
result:
ok ok
Test #16:
score: 0
Accepted
time: 3ms
memory: 35872kb
input:
297208 929600
output:
54 2 2 1 17 1 2 3 0 53 1 2 4 0 52 1 1 5 1 2 6 0 50 1 2 7 0 49 1 2 8 0 48 1 1 9 1 2 10 0 46 1 2 11 0 45 1 2 12 0 44 1 1 13 1 1 14 1 1 15 1 1 16 1 1 39 1 2 18 1 54 0 2 19 1 53 0 1 20 0 1 21 0 1 22 0 2 23 1 49 0 1 24 0 2 25 1 47 0 2 26 1 46 0 2 27 1 45 0 2 28 1 44 0 1 29 0 2 30 1 42 0 1 31 0 1 32 0 1 3...
result:
ok ok
Test #17:
score: 0
Accepted
time: 3ms
memory: 35876kb
input:
45728 589156
output:
49 5 2 1 12 1 47 1 48 1 49 1 2 3 0 45 1 1 4 1 1 5 1 2 6 0 42 1 2 7 0 41 1 1 8 1 2 9 0 39 1 1 10 1 2 11 0 37 1 1 36 1 1 13 0 1 14 0 1 15 0 2 16 1 46 0 2 17 1 45 0 2 18 1 44 0 2 19 1 43 0 2 20 1 42 0 2 21 1 41 0 1 22 0 2 23 1 39 0 1 24 0 2 25 1 37 0 2 26 1 36 0 1 27 0 1 28 0 2 29 1 33 0 1 30 0 1 31 0 ...
result:
ok ok
Test #18:
score: 0
Accepted
time: 3ms
memory: 11412kb
input:
129152 138000
output:
40 2 2 1 11 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 2 8 0 38 1 2 9 0 37 1 2 10 0 36 1 1 35 1 1 12 0 1 13 0 1 14 0 1 15 0 2 16 1 40 0 2 17 1 39 0 1 18 0 2 19 1 37 0 2 20 1 36 0 1 21 0 1 22 0 1 23 0 2 24 1 32 0 1 25 0 1 26 0 1 27 0 1 28 0 0 2 28 0 28 1 2 29 0 29 1 2 30 0 30 1 2 31 0 31 1 2 32 0 32 1 2 33 0 33...
result:
ok ok
Test #19:
score: 0
Accepted
time: 0ms
memory: 35860kb
input:
245280 654141
output:
50 3 2 1 14 1 50 1 1 3 1 1 4 1 2 5 0 46 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 2 11 0 40 1 2 12 0 39 1 2 13 0 38 1 1 37 1 1 15 0 1 16 0 2 17 1 48 0 2 18 1 47 0 2 19 1 46 0 2 20 1 45 0 2 21 1 44 0 2 22 1 43 0 1 23 0 2 24 1 41 0 2 25 1 40 0 1 26 0 1 27 0 2 28 1 37 0 2 29 1 36 0 2 30 1 35 0 2 31 1 34 0 1 33 ...
result:
ok ok
Test #20:
score: 0
Accepted
time: 4ms
memory: 19660kb
input:
202985 296000
output:
52 2 2 1 19 1 1 3 1 2 4 0 52 1 2 5 0 51 1 2 6 0 50 1 1 7 1 1 8 1 2 9 0 47 1 2 10 0 46 1 2 11 0 45 1 1 12 1 1 13 1 1 14 1 2 15 0 41 1 1 16 1 2 17 0 39 1 2 18 0 38 1 1 37 1 1 20 0 1 21 0 2 22 1 52 0 1 23 0 1 24 0 1 25 0 1 26 0 2 27 1 47 0 1 28 0 1 29 0 1 30 0 2 31 1 43 0 1 32 0 1 33 0 1 34 0 1 35 0 1 ...
result:
ok ok
Test #21:
score: 0
Accepted
time: 0ms
memory: 35944kb
input:
438671 951305
output:
56 2 2 1 20 1 1 3 1 2 4 0 54 1 1 5 1 2 6 0 52 1 1 7 1 1 8 1 2 9 0 49 1 2 10 0 48 1 2 11 0 47 1 1 12 1 1 13 1 2 14 0 44 1 2 15 0 43 1 2 16 0 42 1 1 17 1 1 18 1 1 19 1 1 38 1 2 21 1 56 0 2 22 1 55 0 1 23 0 2 24 1 53 0 1 25 0 1 26 0 1 27 0 1 28 0 2 29 1 48 0 1 30 0 1 31 0 1 32 0 1 33 0 1 34 0 1 35 0 2 ...
result:
ok ok
Test #22:
score: 0
Accepted
time: 0ms
memory: 35872kb
input:
425249 739633
output:
55 2 2 1 20 1 1 3 1 2 4 0 54 1 2 5 0 53 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 2 11 0 47 1 1 12 1 2 13 0 45 1 2 14 0 44 1 1 15 1 2 16 0 42 1 2 17 0 41 1 2 18 0 40 1 2 19 0 39 1 1 38 1 1 21 0 2 22 1 55 0 2 23 1 54 0 1 24 0 2 25 1 52 0 1 26 0 1 27 0 2 28 1 49 0 1 29 0 1 30 0 2 31 1 46 0 1 32 0 1 33 0 2 34 1...
result:
ok ok
Test #23:
score: 0
Accepted
time: 0ms
memory: 35868kb
input:
551207 961718
output:
56 1 2 1 2 3 0 21 1 2 4 0 56 1 2 5 0 55 1 2 6 0 54 1 1 7 1 1 8 1 2 9 0 51 1 1 10 1 2 11 0 49 1 2 12 0 48 1 1 13 1 2 14 0 46 1 2 15 0 45 1 1 16 1 2 17 0 43 1 2 18 0 42 1 1 19 1 1 20 1 1 39 1 2 22 1 56 0 1 23 0 2 24 1 54 0 1 25 0 2 26 1 52 0 1 27 0 2 28 1 50 0 2 29 1 49 0 1 30 0 1 31 0 2 32 1 46 0 1 3...
result:
ok ok
Test #24:
score: 0
Accepted
time: 0ms
memory: 35992kb
input:
114691 598186
output:
55 4 2 1 18 1 54 1 55 1 1 3 1 1 4 1 2 5 0 50 1 2 6 0 49 1 2 7 0 48 1 2 8 0 47 1 2 9 0 46 1 2 10 0 45 1 2 11 0 44 1 2 12 0 43 1 2 13 0 42 1 2 14 0 41 1 2 15 0 40 1 2 16 0 39 1 1 17 1 1 37 1 1 19 0 1 20 0 2 21 1 53 0 1 22 0 1 23 0 2 24 1 50 0 1 25 0 1 26 0 1 27 0 1 28 0 1 29 0 2 30 1 44 0 1 31 0 2 32 ...
result:
ok ok
Test #25:
score: 0
Accepted
time: 0ms
memory: 11460kb
input:
234654 253129
output:
44 1 2 1 1 3 1 1 4 1 2 5 0 18 1 2 6 0 44 1 1 7 1 2 8 0 42 1 1 9 1 2 10 0 40 1 2 11 0 39 1 1 12 1 2 13 0 37 1 2 14 0 36 1 1 15 1 1 16 1 1 17 1 1 32 1 1 19 0 2 20 1 43 0 2 21 1 42 0 2 22 1 41 0 1 23 0 1 24 0 2 25 1 38 0 2 26 1 37 0 1 27 0 1 28 0 2 29 1 34 0 1 30 0 1 32 0 0 2 31 0 31 1 2 32 0 32 1 2 33...
result:
ok ok
Test #26:
score: 0
Accepted
time: 0ms
memory: 35944kb
input:
554090 608599
output:
48 1 2 1 1 3 0 1 4 0 2 5 0 20 1 2 6 0 48 1 1 7 1 1 8 1 1 9 1 2 10 0 44 1 1 11 1 2 12 0 42 1 2 13 0 41 1 2 14 0 40 1 1 15 1 1 16 1 2 17 0 37 1 1 18 1 2 19 0 35 1 1 34 1 1 21 0 2 22 1 47 0 1 23 0 1 24 0 2 25 1 44 0 1 26 0 1 27 0 2 28 1 41 0 1 29 0 2 30 1 39 0 1 31 0 2 32 1 37 0 1 36 0 0 2 33 0 33 1 2 ...
result:
ok ok
Extra Test:
score: 0
Extra Test Passed