当前位置:   article > 正文

C. Madoka and Formal Statement

C. Madoka and Formal Statement

链接

Problem - 1717C - Codeforces

思路 : 

当有任意一个 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

代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N = 2e5 + 10 ;
  4. int a[N] , b[N] ;
  5. void solve(){
  6. // a[i] -> b[i];
  7. // a[i] 不能变小 , so a[i]>b[i]直接false
  8. // a[i]<=a[i+1] a[i]++;
  9. int n ; cin >> n ;
  10. for(int i=0;i<n;i++) cin >> a[i] ;
  11. for(int j =0;j<n;j++) cin >> b[j];
  12. for(int i=0;i<n;i++){
  13. if(a[i]>b[i] || (a[i]<b[i])&&(b[i]>b[(i+1)%n]+1)){
  14. cout << "No" << endl;
  15. return ;
  16. }
  17. }
  18. cout << "Yes" << endl;
  19. return ;
  20. }
  21. int main(){
  22. int t ; cin >> t ;
  23. while(t--){
  24. solve() ;
  25. }
  26. return 0 ;
  27. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/52733
推荐阅读
相关标签
  

闽ICP备14008679号