赞
踩
当有任意一个 ai>bi 的时候,肯定是无法变为序列 b 的。
如果存在一个 i 使得−bi−b(i-1)>1,则如果我们想要改动 a(i-1)到b(i-1),就必须使得 ai≥a(i-1),但是我们知道,如果在最后能够让 ai≥a(i-1) 的话,ai 就必须大于 bi,所以不可能成功
综上所述,如果存在 a[i]>b[i] or a[i]<b[i] and b[i]>b[(i+1)%n]+1 就输出 NO,否则输出 YES
- #include<bits/stdc++.h>
- using namespace std;
-
- const int N = 2e5 + 10 ;
- int a[N] , b[N] ;
-
- void solve(){
- // a[i] -> b[i];
- // a[i] 不能变小 , so a[i]>b[i]直接false
- // a[i]<=a[i+1] a[i]++;
- int n ; cin >> n ;
- for(int i=0;i<n;i++) cin >> a[i] ;
- for(int j =0;j<n;j++) cin >> b[j];
- for(int i=0;i<n;i++){
- if(a[i]>b[i] || (a[i]<b[i])&&(b[i]>b[(i+1)%n]+1)){
- cout << "No" << endl;
- return ;
- }
- }
- cout << "Yes" << endl;
- return ;
- }
-
- int main(){
- int t ; cin >> t ;
- while(t--){
- solve() ;
- }
- return 0 ;
- }
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。