题意:给定一个整数n,输出2n个数,并且这些2n个数满足
思路:思维构造题,由等号的右边(a2+a3)*(a4+a5),可以构造2和-1(0不可取),这样2+(-1)为1,等号右边就为a1和a2n,等号左边为2a1*(-2)*(-2)*(-a2n),这样就相当于解二元方程,那么直接去a2n为1,解得a1为1-(-2)*(n-2),然后按题意输出即可。
实现代码:
#include<bits/stdc++.h>
#define int long long
#define endl "\n"
#define fi first
#define se second
#define PII pair<int,int>
using namespace std;
const int N=1e6+5;
int a[N];
void solve(){
int n;
cin >> n;
cout << 1-(-2)*(n-2) << " "<<2<<" ";//先输出a1,然后输出2
for(int i=1;i<=n-2;++i){//输出n-2个(-1 2)
cout << "-1 2 ";
}
cout << "-1 1" << endl;//最后输出-1和a2n
return ;
}
signed main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t=1;
cin >> t;
while(t--) solve();
return 0;
}