• Equivalent Prefixes


    题目链接

    题意:给你两个数组a,b,大小为n,让你寻找一个数p (1<= p <= n) ,使之在 1~p 任意一个区间中a,b数组的最小值下标相同。

    思路:看到用线段树去写的我也是服了。。。我的思路是这样的,先去更新最小值,如果更新情况不一样肯定结束,然后看前面是否都一致单调递减。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<map>
    #include<string>
    #define ll long long
    using namespace std;
    int a[100010];
    int b[100010];
    int main()
    {
        int n;
        while(~scanf("%d",&n))
        {
            for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
            for(int i=1;i<=n;i++)
            scanf("%d",&b[i]);
            int m1=99999999;
            int m2=99999999;
            int r=0;
            int flag=0;
            for(int i=1;i<=n;i++)
            {
                for(int j=i-1;j>0;j--)
                {
                    if((a[i]<a[j]&&b[i]>b[j])||(a[i]>a[j]&&b[i]<b[j]))
                    {
                        flag = 1;
                        break;
                    }
                    else if(a[j]<a[i]&&b[j]<b[i])
                    {
                        break;
                    }
                }
                if(flag)
                {
                    r=i-1;
                    break;
                }
            }
            if(r==0)
            r=n;
            printf("%d
    ",r);
        }
    }
  • 相关阅读:
    Oracle Golden Gate
    DNS
    RMAN 管理
    黄伟-RAC生产库现场调整本分策略实战
    Linux下RAID技术
    OCP之黄伟 2
    About NULL Value
    OCP之黄伟
    Table
    Perl的简单变量
  • 原文地址:https://www.cnblogs.com/2462478392Lee/p/11279701.html
Copyright © 2020-2023  润新知