• Codeforces Round #627 (Div. 3) B


    题意:

    问一个数组中是否存在至少长为3的回文子数组(按下标排列,可不连续)。

    思路:

    找三个相同数或两个不连续的相同数。

    #include <bits/stdc++.h>
    using namespace std;
     
    const int M=5500;
     
    void solve(){
        int last[M]={0},cnt[M]={0};
     
        int n;cin>>n;
        int a[n+1];for(int i=1;i<=n;i++) cin>>a[i];
     
        for(int i=1;i<=n;i++){
            if((++cnt[a[i]]==3)||(last[a[i]]&&last[a[i]]!=i-1)){
                cout<<"YES
    ";
                return;
            }
            last[a[i]]=i;
        }
        
        cout<<"NO
    ";
    }
     
    int main(){
        int t;cin>>t;
        while(t--)
            solve();
        return 0;
    }

    更新 :

    二者实为一种情况。

    #include <bits/stdc++.h>
    using namespace std;
     
    const int M=5500;
     
    void solve(){
        int first[M]={0};
     
        int n;cin>>n;
        int a[n+1];for(int i=1;i<=n;i++) cin>>a[i];
     
        for(int i=1;i<=n;i++){
            if(first[a[i]]==0){
                first[a[i]]=i;
            }
            else if(first[a[i]]<i-1){
                cout<<"YES
    ";
                return;
            }
        }
    
        cout<<"NO
    ";
    }
     
    int main(){
        int t;cin>>t;
        while(t--)
            solve();
        return 0;
    }
  • 相关阅读:
    书单
    parzen 窗的matlab实现
    Oracle-07
    图片加载不出来
    省市区三表建立及数据插入
    a链接与button按钮混用
    省市区三级联动,获取地区编号,JSON格式
    纯JS省市区三级联动
    JDK与JRE的区别
    web-03-jQuery
  • 原文地址:https://www.cnblogs.com/Kanoon/p/12483940.html
Copyright © 2020-2023  润新知