其他分享
首页 > 其他分享> > Codeforces Round #698 (Div. 2)(A、B、C、D)

Codeforces Round #698 (Div. 2)(A、B、C、D)

作者:互联网

Solved


A、Nezzar and Colorful Balls

数量最多的数字的数量即是答案。

int a[105];
int num[105];
int main()
{
    int T,n;
    cin>>T;
    while(T--){
        cin>>n;
        mem(num,0);
        int ans=0;
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
            num[a[i]]++;
            ans=max(ans,num[a[i]]);
        }
        cout<<ans<<endl;
    }
}

B、Nezzar and Lucky Number

题意:
设 \(d\) 为 \(lucky\ number\),判断一个数 \(n\) 是否可以由几个正整数组成(这些正整数中,每个数至少有一位包括 \(d\) )。

想法:

代码

int a[10500];
int num[15];
int main()
{
    int T,q,d;
    cin>>T;
    while(T--){
        cin>>q>>d;
        for(int i=1;i<=q;i++){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=q;i++){
            if(a[i]>=d*10){
                printf("YES\n");
            }else{
                int k=0;
                for(int j=1;j<=9;j++){
                    if((a[i]-j*d)%10==d){
                        k=1;
                        break;
                    }
                }
                if(k||a[i]%10==d||a[i]%d==0||a[i]/10==d){
                    printf("YES\n");
                }else{
                    printf("NO\n");
                }
            }
        }
    }
}

C、Nezzar and Symmetric Array

题意:
给出一个长度为 \(2\times n\) 的数组 \(d\),其中

$d_{i}=\sum^{2n}_{j=1} \left| a_{i}-a_{j}\right| $

问是否存在一个长度为 \(2\times n\) 的数组 \(a\) ,满足上述的数组 \(d\),且 \(a\) 数组满足条件 对于 \(a_{i}\),一定存在 \(a_{j}=-a_{i}\)。且 \(a\) 数组中没有重复数组。

想法:

代码:

ll d[200500];
ll a[100500];
set<ll>st;
vector<ll>v;
bool cmp(ll a,ll b)
{
    return a>b;
}
int main()
{
    int T,n;
    cin>>T;
    while(T--){
        st.clear();
        v.clear();
        scanf("%d",&n);
        for(int i=1;i<=2*n;i++){
            scanf("%lld",&d[i]);
            st.insert(d[i]);
        }
        if(st.size()!=n){
            printf("NO\n");
        }else{
            set<ll>::iterator it;
            int k=1;
            for(it=st.begin();it!=st.end();it++){
                v.push_back(*it);
                if(*it%2==1)k=0;
            }
            sort(v.begin(),v.end(),cmp);
            st.clear();
            int pos=2*n;
            ll pre=0;
            for(int i=0;i<n;i++){
                if((v[i]-pre)%pos!=0){
                    k=0;
                    break;
                }else{
                    a[i]=(v[i]-pre)/pos;
                    //cout<<a[i]<<endl;
                    st.insert(a[i]);
                    if(a[i]<=0){
                        k=0;
                        break;
                    }
                    pre+=2*a[i];
                    pos-=2;
                }
            }
            if(st.size()!=n)k=0;
            if(k){
                printf("YES\n");
            }else{
                printf("NO\n");
            }
        }
    }
}

D、Nezzar and Board

题意:
给一个数组 \(a\),可以选取数组中任意两个数 \(a_{i}、a_{j}\),把 \(a_{i}\times 2-a_{j}\) 放入数组中,问你经过无数次操作,是否可以让数字 \(num\) 在数组中。

想法:

代码:

ll gcd(ll a,ll b){ if(b==0)return a;return gcd(b,a%b);}
ll x[maxn];
ll n,k;
int main()
{
    int T;
    cin>>T;
    while(T--){
        cin>>n>>k;
        for(int i=1;i<=n;i++){
            scanf("%lld",&x[i]);
        }
        ll g=x[2]-x[1];
        for(int i=3;i<=n;i++){
            g=gcd(g,x[i]-x[i-1]);
        }
        if((k-x[1])%g==0)puts("YES");
        else puts("NO");
    }
    return 0;
}

标签:Nezzar,cin,int,698,Codeforces,times,数组,Div,ll
来源: https://www.cnblogs.com/ha-chuochuo/p/14346993.html