#include<bits/stdc++.h>usingnamespace std;intmain(){int n;
cin >> n;int mod = n %3;int ans =0;if(n ==1|| n ==2){
cout <<1<< endl;
cout <<1<<" "<<1<< endl;return0;}if(mod ==2){int x =(n -2)/3;int y = x +1;
ans = y + x;printf("%d\n",ans);for(int i = y; i >=1; i --){
cout << i <<" "<< y +1- i << endl;}for(int i = n; i >= n - x +1; i --){
cout << i <<" "<<2* n - i -(x -1)<< endl;}}if(mod ==0){
ans +=1;int t = n;
n --;int x =(n -2)/3;int y = x +1;
ans += y + x;printf("%d\n",ans);
cout << t <<" "<< t << endl;for(int i = y; i >=1; i --){
cout << i <<" "<< y +1- i << endl;}for(int i = n; i >= n - x +1; i --){
cout << i <<" "<<2* n - i -(x -1)<< endl;}}if(mod ==1){
ans +=2;int t = n;
n -=2;int x =(n -2)/3;int y = x +1;
ans += y + x;printf("%d\n",ans);
cout << t <<" "<< t << endl;
cout << t -1<<" "<< t -1<< endl;for(int i = y; i >=1; i --){
cout << i <<" "<< y +1- i << endl;}for(int i = n; i >= n - x +1; i --){
cout << i <<" "<<2* n -(x -1)- i << endl;}}}
Codeforces Round #783 (Div. 2) E. Half Queen Cover
E. Half Queen Cover奇怪的构造题思路:当 nnn模 333 为222的时候,可以类似于这种构造:当模数不是2的时候,我们可以在右下角重新染色1个或者2个方块让它变成模数为2 的,例如,我们可以先把蓝色的染色后再去做模数为2的。代码:#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; int mod = n % 3;