算法竞赛 Codeforces Round #661 (Div. 3)

算法竞赛 Codeforces Round #661 (Div. 3)

A.Remove Smallest

00:26

照着题目要求做就行了
》英文原题《

题解:

#include<stdio.h>
int main()
{
    int t,n;
    int i,j,k;
    int a[105]={0};
    int e;
    int max,min;
    int flag=100;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        flag=100;
        for(j=0;j<105;j++)
        {
            a[j]=0;
        }
        scanf("%d",&n);
        max=0;min=101;
        for(j=0;j<n;j++)
        {
            scanf("%d",&e);
            if(e>max)max=e;
            if(e<min)min=e;
            a[e]++;
        }
        for(j=min;j<=max;j++)
        {
            if(!a[j])flag=0;
        }
        if(flag)
        {
            printf("YES\n");
        }
        else
        {
            printf("NO\n");
        }
    }
}

B.Gifts Fixing

00:48

照着题目要求做就行了
注意答案会超过int取值范围
》英文原题《

题解:

#include<stdio.h>
int main()
{
    int t,n;
    int i,j,k;
    int a[55]={0};
    int b[55]={0};
    int amax,amin,bmax,bmin;
    long long int asn;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        amax=0;amin=1000000005;
        bmax=0;bmin=1000000005;
        asn=0;
        scanf("%d",&n);
        for(j=0;j<n;j++)
        {
            scanf("%d",&a[j]);
            if(a[j]>amax)amax=a[j];
            if(a[j]<amin)amin=a[j];
        }
        for(j=0;j<n;j++)
        {
            scanf("%d",&b[j]);
            if(b[j]>bmax)bmax=b[j];
            if(b[j]<bmin)bmin=b[j];
        }
        for(j=0;j<n;j++)
        {
            a[j]-=amin;
            b[j]-=bmin;
            if(a[j]>b[j])
            {
                asn+=a[j];
            }
            else
            {
                asn+=b[j];
            }
        }
        printf("%lld\n",asn);
    }
}

C.Boats Competition

01:35

照着题目要求做就行了
》英文原题《

题解

#include<stdio.h>
int main()
{
    int t,n,e;
    int i,j,k;
    int a[105];
    int asn,temp,max;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        asn=0;max=0;
        for(j=0;j<105;j++)
        {
            a[j]=0;
        }
        scanf("%d",&n);
        for(j=1;j<=n;j++)
        {
            scanf("%d",&e);
            a[e]++;
            if(e>max)max=e;
        }
        //printf("%d\n",max);
        for(j=1;j<=2*max;j++)
        {
            temp=0;
            for(k=1;k<=j/2;k++)
            {
                if(k<j-k)
                {
                    if(a[k]>a[j-k])
                    {
                        temp+=a[j-k];
                        //printf("[j]:%d[k]%d:%d\n",j,k,a[j-k]);
                    }
                    else
                    {
                        temp+=a[k];
                        //printf("[j]:%d[k]%d:%d\n",j,k,a[k]);
                    }
                }
                else if(k==j-k)
                {
                    temp+=a[k]/2;
                    //printf("[j]:%d[k]%d:%d\n",j,k,a[k]/2);
                }
            }
            if(temp>asn)
                asn=temp;
            //printf("[j]%d:%d\n",j,temp);
        }
        printf("%d\n",asn);
    }
}

D.Binary String To Subsequences

Unfinded

题目没看懂,明天再重新看
》英文原题《

题解:


E1.Weights Division (easy version)

Unfinded

水平不到,缺练,明天补
》英文原题《

题解:


E2.Weights Division (hard version)

Unfinded

水平不到,缺练,明天补
》英文原题《

题解:


F.Yet Another Segments Subset

Unfinded

不在能力范围
》英文原题《

版权声明:本文为 溪月阁 | MoBrook 博主「 皓月 」的原创文章遵循用 CC BY-NC-SA 4.0 版权协议进行许可,转载请附上原文出处链接及本声明。

本文链接https://mobrook.cn/index.php/codeforces-1399/

上一篇:

没有了,已经是最新文章