先放偶数,再放奇数。这样每个点的父亲基本都是偶数,所以乘起来一定是偶数。
void solve(){
int n;cin>>n;
vi a(n+1);
int x=2;
for(int i=1;i<=n/2;++i){
a[i]=x;
x+=2;
}
if(n%2){
x=n;
}else{
x=n-1;
}
for(int i=n/2+1;i<=n;++i){
a[i]=x;
x-=2;
}
for(int i=1;i<=n;++i){
cout<<a[i]<<" ";
}
cout<<endl;
}

京公网安备 11010502036488号