15分!!
查看原帖
15分!!
422387
VIOLET__FOREVER楼主2023/10/6 21:40
#include<bits/stdc++.h>
#define int long long

const int N=2005;

using namespace std;

int T;
int n;
int a[N],t[N],b[N],c[N];
int num[N];

signed main(){
	cin>>T;
	while(T--){
		memset(num,0,sizeof(num));
		cin>>n;
		int flag=1;
		for(int i=1;i<=n;i++) cin>>t[i];
		for(int i=1;i<=n;i++) cin>>b[i];
		for(int i=1;i<=n;i++){
			c[i]=t[i]+t[n-i+1];
			if(b[i]>b[n-i+1]){
				if(t[i]<=t[n-i+1] || abs(b[i]-b[n-i+1])%abs(t[n-i+1]-t[i])!=0){
					flag=0;
					break;
				}
				else num[i]=abs(b[i]-b[n-i+1])/abs(t[n-i+1]-t[i]);
			}
			else if(b[i]<b[n-i+1]){
				if(t[i]>=t[n-i+1] || abs(b[i]-b[n-i+1])%abs(t[n-i+1]-t[i])!=0){
					flag=0;
					break;
				}
				else num[i]=abs(b[i]-b[n-i+1])/abs(t[n-i+1]-t[i]);
			}
			else num[i]=0;
		}
//		for(int i=1;i<=n;i++){
//			cout<<c[i]<<" ";
//		}
//		cout<<endl;
		if(!flag){
			puts("No");
			continue;
		}
		sort(num+1,num+1+n);
//		for(int i=1;i<=n;i++){
//			cout<<num[i]<<" ";
//		}
//		cout<<endl;
		if(num[2]!=num[n]){
			puts("No");
			continue;
		}
		for(int i=1;i<=n;i++){
			b[i]-=num[2]*t[i];
			//cout<<num[2]<<" "<<b[i]<<" ";
		}
		//cout<<endl;
		for(int i=1;i<=n;i++){
			if(b[i]%c[i]!=0){
				flag=0;
				break;
			}
		}
		if(flag) puts("Yes");
		else puts("No");
	}
	return 0;
} 
2023/10/6 21:40
加载中...