QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#760141#9519. Build a ComputerhuayucaijiAC ✓1ms5976kbC++143.4kb2024-11-18 15:03:142024-11-18 15:03:15

Judging History

This is the latest submission verdict.

  • [2024-11-18 15:03:15]
  • Judged
  • Verdict: AC
  • Time: 1ms
  • Memory: 5976kb
  • [2024-11-18 15:03:14]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;

int read() {
	char ch=getchar();
	int f=1,x=0;
	while(ch<'0'||ch>'9') {
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		x=x*10+ch-'0';
		ch=getchar();
	}
	return f*x;
}
char read_char() {
	char ch=getchar();
	while(!isalpha(ch)) {
		ch=getchar();
	}
	return ch;
}

const int MAXN=1e6+10;

int n,cnt,lst,tot,l,r;
int a[MAXN],dig[2][30];
int beg[MAXN],h[MAXN];
bool vis[110][110][2];

struct edge {
	int v,w,nxt;
}e[MAXN];

void addedge(int u,int v,int w) {
	e[++cnt].v=v;
	e[cnt].w=w;
	e[cnt].nxt=h[u];
	h[u]=cnt;
}
int newnode() {
	return ++tot;
}

void con(int x) {
	for(int i=lst+1;i<=x;i++) {
		addedge(beg[i]=newnode(),beg[i-1],1);
		addedge(beg[i],beg[i-1],0);
		lst=i;
	} 
}

void solve() {
	cin>>l>>r;
	if(l==r&&l==1) {
		puts("2\n1 2 1\n0");
		exit(0);
	}
	if(l==1) {
		addedge(1,3,1);
		l++;
	}
	bool flag=0;
	if(l==r) {
		flag=1;
	}
	
	while(l) {
		dig[0][++dig[0][0]]=l&1;
		l>>=1;
	}
	while(r) {
		dig[1][++dig[1][0]]=r&1;
		r>>=1;
	}
	
	beg[0]=3;
	addedge(1,2,1);
	tot=3;
	if(flag) {
		int p=2;
		for(int i=dig[1][0]-1;i>=2;i--) {
			addedge(p,newnode(),dig[1][i]);
			p=tot;
		}
		addedge(p,3,dig[1][1]);
		return ;
	}
	
	int fir=2;
	int m=dig[1][0];
	if(m==dig[0][0]) {
		for(int i=m-1;i>=0;i--) {
			if(dig[1][i]==dig[0][i]) {
				addedge(fir,newnode(),dig[1][i]);
				fir=tot;
			}
			else {
				m=i+1;
				break;
			}
		}
		
		if(m==2) {
			addedge(fir,3,0);
			addedge(fir,3,1);
			return ;
		}
		addedge(fir,newnode(),0);
		int p=tot;
		for(int i=m-2;i>=2;i--) {
			if(dig[0][i]==1) {
				addedge(p,newnode(),1);
				p=tot;
			}
			else {
				con(i-1);
				addedge(p,beg[i-1],1);
				addedge(p,newnode(),0);
				p=tot;
			}
		}
		addedge(p,3,1);
		if(dig[0][1]==0) {
			addedge(p,3,0);
		}
		
		addedge(fir,newnode(),1);
		p=tot;
		for(int i=m-2;i>=2;i--) {
			if(dig[1][i]==0) {
				addedge(p,newnode(),0);
				p=tot;
			}
			else {
				con(i-1);
				addedge(p,beg[i-1],0);
				addedge(p,newnode(),1);
				p=tot;
			}
		}
		addedge(p,3,0);
		if(dig[1][1]==1) {
			addedge(p,3,1);
		}
	}
	
	else {
		for(int i=dig[0][0]+1;i<dig[1][0];i++) {
			con(i-1);
			addedge(1,beg[i-1],1);
		}
		
		int p=fir;
		for(int i=dig[0][0]-1;i>=2;i--) {
			if(dig[0][i]==1) {
				addedge(p,newnode(),1);
				p=tot;
			}
			else {
				con(i-1);
				addedge(p,beg[i-1],1);
				addedge(p,newnode(),0);
				p=tot;
			}
		}
		addedge(p,3,1);
		if(dig[0][1]==0) {
			addedge(p,3,0);
		}
		p=fir;
		for(int i=dig[1][0]-1;i>=2;i--) {
			if(dig[1][i]==0) {
				addedge(p,newnode(),0);
				p=tot;
			}
			else {
				con(i-1);
				addedge(p,beg[i-1],0);
				addedge(p,newnode(),1);
				p=tot;
			}
		}
		addedge(p,3,0);
		if(dig[1][1]==1) {
			addedge(p,3,1);
		}
	}
}

int main() {
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	
	
	solve();
	cout<<tot<<endl;
	for(int u=1;u<=tot;u++) {
		int sum=0;
		for(int i=h[u];i;i=e[i].nxt) {
			if(!vis[u][e[i].v][e[i].w])
				sum++,vis[u][e[i].v][e[i].w]=1;
		}
		cout<<sum<<" ";
		for(int i=h[u];i;i=e[i].nxt) {
			vis[u][e[i].v][e[i].w]=0;
		}
		for(int i=h[u];i;i=e[i].nxt) {
			if(!vis[u][e[i].v][e[i].w])
				printf("%d %d ",e[i].v,e[i].w),vis[u][e[i].v][e[i].w]=1;
		}
		puts("");
	}

	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

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

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 5856kb

input:

5 7

output:

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

result:

ok ok

Test #2:

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

input:

10 27

output:

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

result:

ok ok

Test #3:

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

input:

5 13

output:

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

result:

ok ok

Test #4:

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

input:

1 1000000

output:

39
19 21 1 20 1 19 1 18 1 17 1 16 1 15 1 14 1 13 1 12 1 11 1 10 1 9 1 8 1 7 1 6 1 5 1 2 1 3 1 
4 22 1 21 0 3 0 3 1 
0 
2 3 0 3 1 
2 4 0 4 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
...

result:

ok ok

Test #5:

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

input:

1 1

output:

2
1 2 1
0

result:

ok ok

Test #6:

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

input:

7 9

output:

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

result:

ok ok

Test #7:

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

input:

3 7

output:

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

result:

ok ok

Test #8:

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

input:

1 5

output:

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

result:

ok ok

Test #9:

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

input:

1 4

output:

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

result:

ok ok

Test #10:

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

input:

8 9

output:

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

result:

ok ok

Test #11:

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

input:

7 51

output:

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

result:

ok ok

Test #12:

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

input:

51 79

output:

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

result:

ok ok

Test #13:

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

input:

92 99

output:

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

result:

ok ok

Test #14:

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

input:

27 36

output:

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

result:

ok ok

Test #15:

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

input:

55 84

output:

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

result:

ok ok

Test #16:

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

input:

297208 929600

output:

56
1 2 1 
4 39 1 38 0 21 0 20 1 
0 
2 3 0 3 1 
2 4 0 4 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 22 0 19 1 
1 23 1 
2 24 0 17 1 
2 25 0 16 1 
2 26 0 15 ...

result:

ok ok

Test #17:

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

input:

45728 589156

output:

53
4 21 1 20 1 19 1 2 1 
3 36 0 22 0 17 1 
0 
2 3 0 3 1 
2 4 0 4 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 20 0 20 1 
1 23 1 
1 24 1 
2 25 0 14 1 
2 26 ...

result:

ok ok

Test #18:

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

input:

129152 138000

output:

46
1 2 1 
2 29 0 4 1 
0 
1 5 1 
1 6 1 
1 7 1 
1 8 1 
2 19 0 18 1 
2 3 0 3 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 20 0 17 1 
2 21 0 16 1 
1 22 1 
2 23 0 14 1 
2 24 0 13 1 
2 25 0 12 1 
2 26 0 11 1 
2 27 0 10 1 
2 28 0 9 ...

result:

ok ok

Test #19:

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

input:

245280 654141

output:

55
2 21 1 2 1 
2 38 0 22 1 
0 
2 3 0 3 1 
2 4 0 4 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 20 0 20 1 
1 23 1 
2 24 0 17 1 
1 25 1 
1 26 1 
1 27 1 
1 28...

result:

ok ok

Test #20:

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

input:

202985 296000

output:

51
1 2 1 
2 35 0 4 1 
0 
2 20 0 19 1 
2 3 0 3 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 21 0 18 1 
2 22 0 17 1 
1 23 1 
1 24 1 
2 25 0 14 1 
2 26 0 13 1 
2 27 0 12 1...

result:

ok ok

Test #21:

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

input:

438671 951305

output:

56
1 2 1 
3 39 1 38 0 4 1 
0 
2 21 0 20 1 
2 3 0 3 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
1 22 1 
2 23 0 18 1 
1 24 1 
1 25 1 
2 26 0 15 1 
2 27 0 14 1...

result:

ok ok

Test #22:

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

input:

425249 739633

output:

55
1 2 1 
2 37 0 4 1 
0 
2 21 0 20 1 
2 3 0 3 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 22 0 19 1 
1 23 1 
1 24 1 
1 25 1 
1 26 1 
1 27 1 
2 28 0 13 1 
...

result:

ok ok

Test #23:

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

input:

551207 961718

output:

56
1 2 1 
2 39 1 4 0 
0 
2 22 0 21 1 
2 3 0 3 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 20 0 20 1 
2 23 0 20 1 
2 24 0 19 1 
1 25 1 
1 26 1 
2 27 0 16 1...

result:

ok ok

Test #24:

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

input:

114691 598186

output:

54
3 21 1 20 1 2 1 
2 37 0 22 1 
0 
2 3 0 3 1 
2 4 0 4 1 
2 5 0 5 1 
2 6 0 6 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 20 0 20 1 
1 23 1 
2 24 0 16 1 
2 25 0 15 1 
2 26 0 14 ...

result:

ok ok

Test #25:

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

input:

234654 253129

output:

46
1 2 1 
1 4 1 
0 
1 5 1 
2 33 1 6 0 
2 20 0 19 1 
2 3 0 3 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
1 21 1 
2 22 0 17 1 
1 23 1 
2 24 0 15 1 
2 25 0 14 1 
1 26 1 
2 27 0 12 1 
2 28 0 11 1...

result:

ok ok

Test #26:

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

input:

554090 608599

output:

52
1 2 1 
1 4 0 
0 
1 5 0 
2 37 1 6 0 
2 22 0 21 1 
2 3 0 3 1 
2 7 0 7 1 
2 8 0 8 1 
2 9 0 9 1 
2 10 0 10 1 
2 11 0 11 1 
2 12 0 12 1 
2 13 0 13 1 
2 14 0 14 1 
2 15 0 15 1 
2 16 0 16 1 
2 17 0 17 1 
2 18 0 18 1 
2 19 0 19 1 
2 20 0 20 1 
1 23 1 
1 24 1 
1 25 1 
2 26 0 17 1 
1 27 1 
2 28 0 15 1 
2 2...

result:

ok ok

Extra Test:

score: 0
Extra Test Passed