QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#682535#9519. Build a Computerucup-team2432#AC ✓4ms35992kbC++202.8kb2024-10-27 15:53:412024-10-27 15:53:42

Judging History

This is the latest submission verdict.

  • [2024-10-27 15:53:42]
  • Judged
  • Verdict: AC
  • Time: 4ms
  • Memory: 35992kb
  • [2024-10-27 15:53:41]
  • Submitted

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