QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#790180#9519. Build a ComputerCSQAC ✓10ms7460kbC++202.7kb2024-11-28 04:15:362024-11-28 04:15:37

Judging History

This is the latest submission verdict.

  • [2024-11-28 04:15:37]
  • Judged
  • Verdict: AC
  • Time: 10ms
  • Memory: 7460kb
  • [2024-11-28 04:15:36]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define sz(a) (int)(a.size())
typedef long long int ll;
vector<array<int,2>>adj[101],g[101];
int lab[101],deg[101];
int cc = 0;
int vis[1000001];
vector<int>app;
int l,r;
void dfs(int v,int cur){
    if(g[v].empty()){
        vis[cur]++;
        if(vis[cur] > 1)app.push_back(cur);
        assert(cur >=l  && cur <= r);
        assert(vis[cur] == 1);
        cc++;
    }
    for(auto [x,c]:g[v]){
        dfs(x,2*cur+c);
    }
}
int main()
{
   //freopen("output","w",stdout);
    cin>>l>>r;
    int st = 2;
    int cnt = 2;
    int f = -1;
    for(int i=21;i>=0;i--){
        if((r&(1<<i)) != (l&(1<<i))){
            f = i;
            break;
        }
    }
    bool over = 0;
    int cur = st;
    for(int j=21;j>=0;j--){
        int cl = (l&(1<<j)) > 0;
        if(cl)over = 1;
        if(over)adj[cur].push_back({++cnt,cl});
        if(f > j && !cl)adj[cur].push_back({100-j,1});

        if(over)cur = cnt;
    }
    if(l != r){
        bool over = 0;
        int cur = st;
        for(int j=21;j>=0;j--){
            int cr = (r&(1<<j)) > 0;
            if(cr)over = 1;
            if(over)adj[cur].push_back({++cnt,cr});
            if(f > j && cr)adj[cur].push_back({100-j,0});

            if(over)cur = cnt;
        }
            
    }
    //cout<<cnt<<" ";
    int mx = -1;
    for(int v=1;v<=cnt;v++){
        for(auto &[x,c]:adj[v]){
            if(x > 75)mx = max(mx,100-x);
        }
    }
    //cout<<cnt<<" "<<mx<<'\n';
    for(int i=0;i<=mx;i++){
        lab[i] = ++cnt;
    }
    for(int i=0;i<mx;i++){
        adj[lab[i+1]].push_back({lab[i],0});
        adj[lab[i+1]].push_back({lab[i],1});
    }
    for(int v=1;v<=cnt;v++){
        for(auto &[x,c]:adj[v]){
            if(x > 75)x = lab[100-x];
        }
    }
    for(int v=1;v<=cnt;v++){
         for(auto &[x,c]:adj[v]){
            if(sz(adj[x]) == 0)x = 1;
        }
    }
    vector<int>d(cnt+1,0);
    for(int v=1;v<=cnt;v++){
         for(auto &[x,c]:adj[v]){
            d[v]++;
            d[x]++;
        }
    }
    vector<int>crd;
    for(int i=1;i<=cnt;i++){
        if(!d[i])continue;
        crd.push_back(i);
    }
    

    cout<<sz(crd)<<'\n';
    for(int i=0;i<sz(crd);i++){
        cout<<sz(adj[crd[i]]);
        for(auto &[x,y]:adj[crd[i]]){
            int a = lower_bound(crd.begin(),crd.end(),x) - crd.begin()+1;
            g[i+1].push_back({a,y});
            cout<<" "<<a<<" "<<y;

        }
        cout<<'\n';
    }
    dfs(2,0);
   // cout<<'\n';
    //cout<<cc<<'\n';
    //cout<<sz(app)<<'\n';
    //for(int x:app)cout<<x<<'\n';


}
//11110100001001000000

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3612kb

input:

5 7

output:

6
0
2 3 1 5 1
1 4 0
1 1 1
1 6 1
2 1 1 1 0

result:

ok ok

Test #2:

score: 0
Accepted
time: 0ms
memory: 3548kb

input:

10 27

output:

12
0
2 3 1 6 1
2 4 0 11 1
1 5 1
2 1 0 1 1
2 7 1 12 0
1 8 0
2 9 1 10 0
2 1 1 1 0
2 1 0 1 1
2 10 0 10 1
2 11 0 11 1

result:

ok ok

Test #3:

score: 0
Accepted
time: 0ms
memory: 3852kb

input:

5 13

output:

9
0
2 3 1 5 1
2 4 0 8 1
1 1 1
2 6 1 9 0
1 7 0
2 1 1 1 0
2 1 0 1 1
2 8 0 8 1

result:

ok ok

Test #4:

score: 0
Accepted
time: 10ms
memory: 7460kb

input:

1 1000000

output:

39
0
20 39 1 38 1 37 1 36 1 35 1 34 1 33 1 32 1 31 1 30 1 29 1 28 1 27 1 26 1 25 1 24 1 23 1 22 1 1 1 3 1
2 4 1 39 0
2 5 1 38 0
2 6 1 37 0
1 7 0
2 8 1 35 0
1 9 0
1 10 0
1 11 0
1 12 0
2 13 1 30 0
1 14 0
1 15 0
2 16 1 27 0
1 17 0
1 18 0
1 19 0
1 20 0
1 21 0
1 1 0
2 1 0 1 1
2 22 0 22 1
2 23 0 23 1
2 24...

result:

ok ok

Test #5:

score: 0
Accepted
time: 0ms
memory: 3612kb

input:

1 1

output:

2
0
1 1 1

result:

ok ok

Test #6:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

7 9

output:

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

result:

ok ok

Test #7:

score: 0
Accepted
time: 0ms
memory: 3604kb

input:

3 7

output:

6
0
2 3 1 4 1
1 1 1
2 5 1 6 0
2 1 1 1 0
2 1 0 1 1

result:

ok ok

Test #8:

score: 0
Accepted
time: 0ms
memory: 3552kb

input:

1 5

output:

5
0
3 5 1 1 1 3 1
1 4 0
2 1 1 1 0
2 1 0 1 1

result:

ok ok

Test #9:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

1 4

output:

5
0
3 5 1 1 1 3 1
1 4 0
1 1 0
2 1 0 1 1

result:

ok ok

Test #10:

score: 0
Accepted
time: 0ms
memory: 3604kb

input:

8 9

output:

8
0
2 3 1 6 1
1 4 0
1 5 0
1 1 0
1 7 0
1 8 0
1 1 1

result:

ok ok

Test #11:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

7 51

output:

13
0
4 13 1 12 1 3 1 5 1
1 4 1
1 1 1
2 6 1 13 0
1 7 0
1 8 0
2 9 1 10 0
2 1 1 1 0
2 1 0 1 1
2 10 0 10 1
2 11 0 11 1
2 12 0 12 1

result:

ok ok

Test #12:

score: 0
Accepted
time: 0ms
memory: 3548kb

input:

51 79

output:

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

result:

ok ok

Test #13:

score: 0
Accepted
time: 0ms
memory: 3544kb

input:

92 99

output:

15
0
2 3 1 9 1
1 4 0
1 5 1
1 6 1
1 7 1
2 8 0 15 1
2 1 0 1 1
1 10 1
1 11 0
1 12 0
1 13 0
2 14 1 15 0
2 1 1 1 0
2 1 0 1 1

result:

ok ok

Test #14:

score: 0
Accepted
time: 0ms
memory: 3848kb

input:

27 36

output:

13
0
2 3 1 7 1
1 4 1
2 5 0 13 1
1 6 1
1 1 1
1 8 0
1 9 0
2 10 1 13 0
1 11 0
1 1 0
2 1 0 1 1
2 12 0 12 1

result:

ok ok

Test #15:

score: 0
Accepted
time: 0ms
memory: 3544kb

input:

55 84

output:

17
0
2 3 1 8 1
1 4 1
2 5 0 16 1
1 6 1
1 7 1
1 1 1
1 9 0
2 10 1 17 0
1 11 0
2 12 1 15 0
1 13 0
1 1 0
2 1 0 1 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: 6060kb

input:

297208 929600

output:

57
0
2 3 1 21 1
2 4 0 56 1
2 5 0 55 1
1 6 1
2 7 0 53 1
2 8 0 52 1
2 9 0 51 1
1 10 1
2 11 0 49 1
2 12 0 48 1
2 13 0 47 1
1 14 1
1 15 1
1 16 1
1 17 1
1 18 1
2 19 0 41 1
2 20 0 40 1
2 1 0 1 1
2 22 1 57 0
2 23 1 56 0
1 24 0
1 25 0
1 26 0
2 27 1 52 0
1 28 0
2 29 1 50 0
2 30 1 49 0
2 31 1 48 0
2 32 1 47 0...

result:

ok ok

Test #17:

score: 0
Accepted
time: 0ms
memory: 5688kb

input:

45728 589156

output:

54
0
5 54 1 53 1 52 1 3 1 18 1
2 4 0 50 1
1 5 1
1 6 1
2 7 0 47 1
2 8 0 46 1
1 9 1
2 10 0 44 1
1 11 1
2 12 0 42 1
1 13 1
2 14 0 40 1
2 15 0 39 1
2 16 0 38 1
2 17 0 37 1
2 1 0 1 1
1 19 0
1 20 0
1 21 0
2 22 1 51 0
2 23 1 50 0
2 24 1 49 0
2 25 1 48 0
2 26 1 47 0
2 27 1 46 0
1 28 0
2 29 1 44 0
1 30 0
2 3...

result:

ok ok

Test #18:

score: 0
Accepted
time: 0ms
memory: 3876kb

input:

129152 138000

output:

47
0
2 3 1 19 1
1 4 1
1 5 1
1 6 1
1 7 1
1 8 1
2 9 0 45 1
2 10 0 44 1
2 11 0 43 1
1 12 1
2 13 0 41 1
2 14 0 40 1
2 15 0 39 1
2 16 0 38 1
2 17 0 37 1
2 18 0 36 1
2 1 0 1 1
1 20 0
1 21 0
1 22 0
1 23 0
2 24 1 47 0
2 25 1 46 0
1 26 0
2 27 1 44 0
2 28 1 43 0
1 29 0
1 30 0
1 31 0
2 32 1 39 0
1 33 0
1 34 0
...

result:

ok ok

Test #19:

score: 0
Accepted
time: 0ms
memory: 5412kb

input:

245280 654141

output:

56
0
3 56 1 3 1 20 1
1 4 1
1 5 1
2 6 0 52 1
1 7 1
1 8 1
1 9 1
1 10 1
1 11 1
2 12 0 46 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
2 1 0 1 1
1 21 0
1 22 0
2 23 1 54 0
2 24 1 53 0
2 25 1 52 0
2 26 1 51 0
2 27 1 50 0
2 28 1 49 0
1 29 0
2 30 1 47 0
2 31 1 46 0
1 32 0...

result:

ok ok

Test #20:

score: 0
Accepted
time: 1ms
memory: 3952kb

input:

202985 296000

output:

52
0
2 3 1 20 1
1 4 1
2 5 0 52 1
2 6 0 51 1
2 7 0 50 1
1 8 1
1 9 1
2 10 0 47 1
2 11 0 46 1
2 12 0 45 1
1 13 1
1 14 1
1 15 1
2 16 0 41 1
1 17 1
2 18 0 39 1
2 19 0 38 1
1 1 1
1 21 0
1 22 0
2 23 1 52 0
1 24 0
1 25 0
1 26 0
1 27 0
2 28 1 47 0
1 29 0
1 30 0
1 31 0
2 32 1 43 0
1 33 0
1 34 0
1 35 0
1 36 0
...

result:

ok ok

Test #21:

score: 0
Accepted
time: 5ms
memory: 5572kb

input:

438671 951305

output:

57
0
2 3 1 21 1
1 4 1
2 5 0 55 1
1 6 1
2 7 0 53 1
1 8 1
1 9 1
2 10 0 50 1
2 11 0 49 1
2 12 0 48 1
1 13 1
1 14 1
2 15 0 45 1
2 16 0 44 1
2 17 0 43 1
1 18 1
1 19 1
1 20 1
1 1 1
2 22 1 57 0
2 23 1 56 0
1 24 0
2 25 1 54 0
1 26 0
1 27 0
1 28 0
1 29 0
2 30 1 49 0
1 31 0
1 32 0
1 33 0
1 34 0
1 35 0
1 36 0
...

result:

ok ok

Test #22:

score: 0
Accepted
time: 3ms
memory: 5004kb

input:

425249 739633

output:

56
0
2 3 1 21 1
1 4 1
2 5 0 55 1
2 6 0 54 1
1 7 1
1 8 1
1 9 1
1 10 1
1 11 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
2 19 0 41 1
2 20 0 40 1
1 1 1
1 22 0
2 23 1 56 0
2 24 1 55 0
1 25 0
2 26 1 53 0
1 27 0
1 28 0
2 29 1 50 0
1 30 0
1 31 0
2 32 1 47 0
1 33 0
1 34 0
2 35...

result:

ok ok

Test #23:

score: 0
Accepted
time: 4ms
memory: 5160kb

input:

551207 961718

output:

57
0
2 3 1 22 1
1 4 0
2 5 0 57 1
2 6 0 56 1
2 7 0 55 1
1 8 1
1 9 1
2 10 0 52 1
1 11 1
2 12 0 50 1
2 13 0 49 1
1 14 1
2 15 0 47 1
2 16 0 46 1
1 17 1
2 18 0 44 1
2 19 0 43 1
1 20 1
1 21 1
1 1 1
1 23 1
2 24 1 57 0
1 25 0
2 26 1 55 0
1 27 0
2 28 1 53 0
1 29 0
2 30 1 51 0
2 31 1 50 0
1 32 0
1 33 0
2 34 1...

result:

ok ok

Test #24:

score: 0
Accepted
time: 5ms
memory: 5512kb

input:

114691 598186

output:

55
0
4 55 1 54 1 3 1 19 1
1 4 1
1 5 1
2 6 0 50 1
2 7 0 49 1
2 8 0 48 1
2 9 0 47 1
2 10 0 46 1
2 11 0 45 1
2 12 0 44 1
2 13 0 43 1
2 14 0 42 1
2 15 0 41 1
2 16 0 40 1
2 17 0 39 1
1 18 1
1 1 1
1 20 0
1 21 0
2 22 1 53 0
1 23 0
1 24 0
2 25 1 50 0
1 26 0
1 27 0
1 28 0
1 29 0
1 30 0
2 31 1 44 0
1 32 0
2 3...

result:

ok ok

Test #25:

score: 0
Accepted
time: 1ms
memory: 3728kb

input:

234654 253129

output:

49
0
2 3 1 20 1
1 4 1
1 5 1
1 6 0
2 7 0 49 1
1 8 1
2 9 0 47 1
1 10 1
2 11 0 45 1
2 12 0 44 1
1 13 1
2 14 0 42 1
2 15 0 41 1
1 16 1
1 17 1
1 18 1
1 19 1
2 1 0 1 1
1 21 1
1 22 1
1 23 1
1 24 0
2 25 1 48 0
2 26 1 47 0
2 27 1 46 0
1 28 0
1 29 0
2 30 1 43 0
2 31 1 42 0
1 32 0
1 33 0
2 34 1 39 0
1 35 0
1 3...

result:

ok ok

Test #26:

score: 0
Accepted
time: 1ms
memory: 3992kb

input:

554090 608599

output:

55
0
2 3 1 22 1
1 4 0
1 5 0
1 6 0
2 7 0 55 1
1 8 1
1 9 1
1 10 1
2 11 0 51 1
1 12 1
2 13 0 49 1
2 14 0 48 1
2 15 0 47 1
1 16 1
1 17 1
2 18 0 44 1
1 19 1
2 20 0 42 1
1 21 1
2 1 0 1 1
1 23 0
1 24 0
1 25 1
1 26 0
2 27 1 54 0
1 28 0
1 29 0
2 30 1 51 0
1 31 0
1 32 0
2 33 1 48 0
1 34 0
2 35 1 46 0
1 36 0
2...

result:

ok ok

Extra Test:

score: 0
Extra Test Passed