QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#97684#6319. Parallel Processing (Easy)whatever#AC ✓3ms3816kbC++142.8kb2023-04-17 22:06:492023-04-17 22:06:52

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-04-17 22:06:52]
  • 评测
  • 测评结果:AC
  • 用时:3ms
  • 内存:3816kb
  • [2023-04-17 22:06:49]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
vector<vector<vector<int> > > ans;
void op(vector<vector<int> > v)
{
/*	bitset<2005> A,B,C,D;
	A=(s[v[0][1]]^s[v[0][2]]);
	B=(s[v[1][1]]^s[v[1][2]]);
	C=(s[v[2][1]]^s[v[2][2]]);
	D=(s[v[3][1]]^s[v[3][2]]);
	s[v[0][0]]=A;
	s[v[1][0]]=B;
	s[v[2][0]]=C;
	s[v[3][0]]=D;*/
	ans.push_back(v);
}
vector<vector<vector<int> > > solve(int n)
{
	ans.clear();
//	bitset<2005> s[2005];
	int fa[2005]={},cnt[2005]={};
	for(int i=1;i<=n;i++) fa[i]=i-1,cnt[i-1]=1;
	for(int i=1;i<=n;i++)
	{
		vector<vector<int> > v;
		bitset<2005> qwq;
		qwq.reset();
		int C=4;
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&cnt[j]&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]],qwq[j]=1;
				--C;
			}
			if(!C) break;
		}
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&fa[fa[j]]==0&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]];
				--C;
			}
			if(!C) break;
		}
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]],qwq[j]=1;
				--C;
			}
			if(!C) break;
		}
		if(v.size()==0) break;
		while(v.size()<4) v.insert(v.begin(),{2000,2000,2000});
		op(v);
	}
	return ans;
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n;
	cin >> n;
//	for(int i=1;i<=n;i++) s[i][i]=1;
//	for(int i=1;i<=n;i++) fa[i]=i-1,cnt[i-1]=1;
/*	for(int i=1;i<=n;i++)
	{
		vector<vector<int> > v;
		bitset<2005> qwq;
		qwq.reset();
		int C=4;
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&cnt[j]&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]],qwq[j]=1;
				--C;
			}
			if(!C) break;
		}
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&fa[fa[j]]==0&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]];
				--C;
			}
			if(!C) break;
		}
		for(int j=1;j<=n;j++)
		{
			if(fa[j]!=0&&!qwq[fa[j]])
			{
				v.push_back({j,fa[j],j});
				--cnt[fa[j]],++cnt[fa[fa[j]]],fa[j]=fa[fa[j]],qwq[j]=1;
				--C;
			}
			if(!C) break;
		}
		if(v.size()==0) break;
		while(v.size()<4) v.push_back({2,1,2});
		op(v);
	}*/
	vector<vector<vector<int> > > qwq;
	for(int i=0;i<=10000;i++) qwq.push_back({{}});
	for(int i=n;i<=n+4;i++)
	{
		vector<vector<vector<int> > > xx=solve(i);
		if(xx.size()<qwq.size()) qwq=xx;
	}
	ans=qwq;
	cout << ans.size() << "\n";
	for(auto t:ans)
	{
		for(auto y:t)
		{
			for(auto x:y) cout << x << " ";
			cout << "\n";
		}
	}
/*	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout << s[i][j];
		}
		cout << "\n";
	}*/
	return 0;
}

详细

Test #1:

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

input:

2

output:

1
2000 2000 2000 
2000 2000 2000 
2000 2000 2000 
2 1 2 

result:

ok AC

Test #2:

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

input:

4

output:

2
2000 2000 2000 
2000 2000 2000 
2 1 2 
4 3 4 
2000 2000 2000 
2000 2000 2000 
3 2 3 
4 2 4 

result:

ok AC

Test #3:

score: 0
Accepted
time: 2ms
memory: 3808kb

input:

3

output:

2
2000 2000 2000 
2000 2000 2000 
2000 2000 2000 
2 1 2 
2000 2000 2000 
2000 2000 2000 
2000 2000 2000 
3 2 3 

result:

ok AC

Test #4:

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

input:

5

output:

3
2000 2000 2000 
2000 2000 2000 
2 1 2 
4 3 4 
2000 2000 2000 
2000 2000 2000 
4 2 4 
3 2 3 
2000 2000 2000 
2000 2000 2000 
2000 2000 2000 
5 4 5 

result:

ok AC

Test #5:

score: 0
Accepted
time: 2ms
memory: 3732kb

input:

6

output:

3
2000 2000 2000 
2 1 2 
4 3 4 
6 5 6 
2000 2000 2000 
2000 2000 2000 
4 2 4 
3 2 3 
2000 2000 2000 
2000 2000 2000 
5 4 5 
6 4 6 

result:

ok AC

Test #6:

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

input:

7

output:

3
2000 2000 2000 
2 1 2 
4 3 4 
6 5 6 
2000 2000 2000 
4 2 4 
3 2 3 
7 6 7 
2000 2000 2000 
5 4 5 
6 4 6 
7 4 7 

result:

ok AC

Test #7:

score: 0
Accepted
time: 2ms
memory: 3744kb

input:

8

output:

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

result:

ok AC

Test #8:

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

input:

9

output:

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

result:

ok AC

Test #9:

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

input:

10

output:

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

result:

ok AC

Test #10:

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

input:

11

output:

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

result:

ok AC

Test #11:

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

input:

12

output:

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

result:

ok AC

Test #12:

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

input:

13

output:

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

result:

ok AC

Test #13:

score: 0
Accepted
time: 2ms
memory: 3748kb

input:

14

output:

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

result:

ok AC

Test #14:

score: 0
Accepted
time: 2ms
memory: 3816kb

input:

15

output:

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

result:

ok AC

Test #15:

score: 0
Accepted
time: 2ms
memory: 3764kb

input:

16

output:

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

result:

ok AC