加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Winner

发布时间:2020-12-16 10:48:19 所属栏目:百科 来源:网络整理
导读:? Winner 南昌邀请赛 暴力模拟 #includebits/stdc++.h using namespace std; struct Nod{ int i; int a,b,c;} A[ 100004 ]; bool f[ 100004 ]; int B[ 100004 ][ 3 ]; bool cmp1(Nod a,Nod b){ return a.a b.a;} bool cmp2(Nod a,Nod b){ return a.b b.b;} b
?Winner
南昌邀请赛 暴力模拟
#include<bits/stdc++.h>
using namespace std;
struct Nod
{
    int i;
    int a,b,c;
} A[100004];
bool f[100004];
int B[100004][3];
bool cmp1(Nod a,Nod b)
{
    return a.a<b.a;
}
bool cmp2(Nod a,Nod b)
{
    return a.b<b.b;
}
bool cmp3(Nod a,Nod b)
{
    return a.c<b.c;
}
int main()
{
    int N,Q;
    scanf("%d%d",&N,&Q);
    int t;
    for(int i=0; i<=N-1; i++)
    {
        scanf("%d",&t);
        A[i].i=i+1;
        A[i].a=t;
    }
    for(int i=0; i<=N-1; i++)
    {
        scanf("%d",&t);
        A[i].b=t;
    }
    for(int i=0; i<=N-1; i++)
    {
        scanf("%d",&t);
        A[i].c=t;
    }
    bool g=0;
    sort(A,A+N,cmp1);
    f[A[N-1].i]=1;
    for(int i=0; i<N; i++)
    {
        B[i][0]=A[i].i;
    }
    sort(A,cmp2);
    f[A[N-1].i]=1;
    g=0;
    for(int i=0; i<N; i++)
    {
        B[i][1]=A[i].i;
        if(f[A[i].i])
        {
            g=1;
        }
        if(g&&f[A[i].i]==0)
        {
            f[A[i].i]=1;
        }
    }
    sort(A,cmp3);
    f[A[N-1].i]=1;
    g=0;
    for(int i=0; i<N; i++)
    {
        B[i][2]=A[i].i;
        if(f[A[i].i])
        {
            g=1;
        }
        if(g&&f[A[i].i]==0)
        {
            f[A[i].i]=1;
        }
    }
    while(true)
    {
        bool ch=0;
        g=0;
        for(int i=0; i<N; i++)
        {
            if(f[B[i][0]])
            {
                g=1;
            }
            if(g&&f[B[i][0]]==0)
            {
                ch=1;
                f[B[i][0]]=1;
            }
        }
        g=0;
        for(int i=0; i<N; i++)
        {
            if(f[B[i][1]])
            {
                g=1;
            }
            if(g&&f[B[i][1]]==0)
            {
                ch=1;
                f[B[i][1]]=1;
            }
        }
        g=0;
        for(int i=0; i<N; i++)
        {
            if(f[B[i][2]])
            {
                g=1;
            }
            if(g&&f[B[i][2]]==0)
            {
                ch=1;
                f[B[i][2]]=1;
            }
        }
        if(!ch)break;
    }
    while(Q--)
    {
        scanf("%d",&t);
        if(f[t])
        {
            puts("YES");
        }
        else puts("NO");
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读