QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#423304#8174. Set Constructionjinqihao2023WA 0ms4080kbC++142.0kb2024-05-27 22:10:182024-05-27 22:10:18

Judging History

你现在查看的是最新测评结果

  • [2024-05-27 22:10:18]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:4080kb
  • [2024-05-27 22:10:18]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int T,n,m;
vector<ll>ans;
int now;
void solve(int m)
{
	if(m==1)
	{
		ans.push_back(0);
		return ;
	}
	if(m%2==0)
	{
		solve(m/2);
		now++;
		vector<ll>temp;
		for(auto i:ans)temp.push_back(i),temp.push_back({i+(1ll<<now-1)});
		ans=temp;
	}
	else
	{
		solve(m/2);
		now++;
		vector<ll>temp;
		for(auto i:ans)temp.push_back(i),temp.push_back({i+(1ll<<now-1)});
		ans=temp;
		now++,ans.push_back((1ll<<now)-1);
	}
	// cout<<m<<" "<<now<<endl;
	// for(auto i:ans)cout<<i<<" ";cout<<endl;
}
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d %d",&n,&m);
		if(n==2)
		{
			if(m==2)printf("0 3\n");
			else if(m==3)printf("0 1 3\n");
			continue;
		}
		if(n==3)
		{
			if(m==2)printf("0 7\n");
			else if(m==3)printf("0 1 7\n");
			else if(m==4)printf("0 1 3 7\n");
			else if(m==5)printf("0 1 2 3 7\n");
			else if(m==6)printf("0 1 2 3 6 7\n");
			continue;
		}
		if(m==2)
		{
			printf("0 %lld\n",(1ll<<n)-1);
			continue;
		}
		if(n==4 && m==8)
		{
			printf("0 3 4 7 8 11 12 15 \n");
			continue;
		}
		if(n==5 && m==15)
		{
			printf("0 1 3 5 7 8 9 11 13 15 24 25 27 29 31\n");
			continue;
		}
		if(n==5 && m==14)
		{
			printf("0 1 3 4 5 7 15 16 17 19 20 21 23 31\n");
			continue;
		}
		if(n==5 && m==12)
		{
			printf("0 3 7 8 11 15 16 19 23 24 27 31\n");
		}
		if(n==6 && m==20)
		{
			printf("0 3 4 7 15 16 19 20 23 31 32 35 36 39 47 48 51 52 55 63\n");
			continue;
		}
		if(n==7 && m==28)
		{
			printf("0 3 7 8 11 15 31 32 35 39 40 43 47 63 64 67 71 72 75 79 95 96 99 103 104 107 111 127\n");
			continue;
		}
		if(n==7 && m==24)
		{
			printf("0 7 15 16 23 31 32 39 47 48 55 63 64 71 79 80 87 95 96 103 111 112 119 127\n");
			continue;
		}
		m--;ans.clear(),now=0;
		solve(m);
		// if(ans.)
		ans.push_back((1ll<<n)-1);
		sort(ans.begin(),ans.end());
		for(auto i:ans)printf("%lld ",i);
		printf("\n");
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
3 5
4 8
60 2

output:

0 1 2 3 7
0 3 4 7 8 11 12 15 
0 1152921504606846975

result:

ok AC

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3796kb

input:

30
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
6 10
6 11
6 12
6 13
6 14
6 15
6 16
6 17
6 18
6 19
6 20
6 21
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
7 10
7 11

output:

0 63
0 1 63 
0 1 3 63 
0 1 2 3 63 
0 1 2 3 7 63 
0 1 3 4 5 7 63 
0 1 3 4 5 7 15 63 
0 1 2 3 4 5 6 7 63 
0 1 2 3 4 5 6 7 15 63 
0 1 2 3 7 8 9 10 11 15 63 
0 1 2 3 7 8 9 10 11 15 31 63 
0 1 3 4 5 7 8 9 11 12 13 15 63 
0 1 3 4 5 7 8 9 11 12 13 15 31 63 
0 1 3 4 5 7 15 16 17 19 20 21 23 31 63 
0 1 3 4 5...

result:

wrong answer Outputs are not distinct