zoukankan      html  css  js  c++  java
  • CF B.Kind Anton(4月8号)

    ------------恢复内容开始------------

     

     翻译如下

     

     (我看了半天没明白)然后大佬一眼就看出来了(手动膜拜大佬);

    就思路当上面一个数组的某一位和下面一个数组的那一位有不同的时候,上减下如果差小于0就看前面有没有1;

    大于0看前面有没有-1;

    做法:

    用map存第一次出现-1的位置和第一次出现1的位置,然后遍历一遍,看是否可行;大佬的做法↓↓↓↓↓

     1 #include<bits/stdc++.h>
     2 const int maxn=1e5+50;
     3 const int INF=0x3f3f3f3f;
     4 using namespace std;
     5 int a[maxn],b[maxn];
     6 int  main(){ 
     7     int t;
     8     cin>>t;
     9     while(t--) {
    10         int n;
    11         int flag=0,flag1=0,flag2=0;
    12         map<int,int> m;
    13         m[1]=INF,m[-1]=INF;
    14         cin>>n;
    15         for(int i=1;i<=n;i++)
    16             cin>>a[i];
    17         for(int i=1;i<=n;i++)
    18             cin>>b[i];
    19         for(int i=1;i<=n;i++){
    20             if(a[i]==1&&!flag1) {//记录1第一次出现的位置
    21                 flag1=1;
    22                 m[1]=i;
    23             }
    24             if(a[i]==-1&&!flag2) {//记录-1第一次出现的位置
    25                 flag2=1;
    26                 m[-1]=i;
    27             }
    28         }
    29         for(int i=1;i<=n;i++){
    30             if(a[i]>b[i]) {
    31                 if(m[-1]>=i) {//比较当上下有元素不同的时候,前面是否出现过该出现的
    32                     flag=1;
    33                     break;
    34                 }
    35             }
    36             else if(a[i]<b[i]) {
    37                 if(m[1]>=i) {
    38                     flag=1;
    39                     break;
    40                 }
    41             }
    42         }
    43         if(flag)
    44             cout<<"NO"<<'
    ';
    45         else
    46             cout<<"YES"<<'
    ';
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    tp框架自带扩展分页类修改样式
    win7获取管理员权限
    Git学习手记(二)
    安卓导出安装包
    浅谈存储过程
    Java宝典
    单例设计模式
    关于Cookie的有关内容
    开辟html5和css3学习随笔(2015-3-2)
    关于面试题
  • 原文地址:https://www.cnblogs.com/ahijing/p/12682890.html
Copyright © 2011-2022 走看看