首先,题目告诉我们
如果有多种答案则输出任意一种即可
于是,可以这么构造:
让 b [ i ] = a [ n − i + 1 ] b[i]=a[n-i+1] b[i]=a[n−i+1] 且让 b [ i ] = a [ n − i + 1 ] b[i]=a[n-i+1] b[i]=a[n−i+1]
这样所有 ∑ a [ i ] ∗ b [ i ] \sum_{}a[i]*b[i] ∑a[i]∗b[i] 为 0 0 0 了。
当然,构造的方法还有许多,比如让 b [ i ] = a [ i + 1 ] b[i]=a[i+1] b[i]=a[i+1] , b [ i + 1 ] = a [ i ] b[i+1]=a[i] b[i+1]=a[i] ,这里就不一一给出了。
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int t,n,a[105],b[105],ans;
signed main(){
scanf("%lld",&t);
while(t--){
scanf("%lld",&n);
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=1;i<=n;i++){
int tmp=pow(-1,i);
printf("%lld ",tmp*a[n-i+1]);
}
printf("\n");
}
return 0;
}