zoukankan      html  css  js  c++  java
  • Codeforces Round #322 (Div. 2) A B C

    比赛地址:http://codeforces.com/contest/581

    A题

    大水题,n双红袜子,m双蓝袜子,求有几天可以混着穿,有几天可以有袜子穿。

    AC代码:

    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    #include <math.h>
    #define INF 0x3f3f3f3f
    using namespace std;
    
    int main()
    {
        int n,m;
        while(~scanf("%d%d",&n,&m))
        {
            printf("%d %d
    ",min(n,m),(max(n,m)-min(n,m))/2);
        }
        return 0;
    }
    

    B题

    题意:给一个数列,问从最右边开始的每个数,需要加多少才能成为到目前为止最大的数。

    记录一下当前最大值,然后确定一下到底需要加多少,记录一下,输出。

    AC代码:

    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    #include <math.h>
    #define INF 0x3f3f3f3f
    using namespace std;
    int s[101101],vis[101101];
    int main()
    {
        int n,m;
        while(~scanf("%d",&n))
        {
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&s[i]);
            }
            int max1=-1;
            for(int i=n;i>=1;i--)
            {
                if(s[i]>max1)
                {
                    max1=s[i];
                    vis[i]=0;
                }
                else
                {
                    vis[i]=max1-s[i]+1;
                }
            }
            for(int i=1;i<=n;i++)
            {
                printf("%d",vis[i]);
                if(i!=n)
                {
                    printf(" ");
                }
                else
                {
                    printf("
    ");
                }
            }
        }
        return 0;
    }
    

    C题

    贪心

    卧槽终于做到C题了好鸡冻!!!

    然而并没有,BIG WATER PROBLEM!!

    题意:n个技能,m个加速器,每个加速器可以为技能加一(技能不能超过100),要求【技能值/10】的最大和。

    很明显,如果使用加速器的话,最好的结果是,用加速器让更多的数达到10,这样的话就可以使得最后的和最大了!!

    根据数字的个位数与10的距离sort一下,小的在前面。

    然后遍历一遍,看能让几个数字成为下一个10的倍数。

    两个小trick:
    1.加技能的时候,技能值不能超过100.

    2.如果所有的数字都达到了10的倍数,而且加速器还有剩余,那么就比较一下(n*10-已经被加速的,m/10);

    TALK IS CHEAP !

    SHOW CODE !

    AC 代码:

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    #include <algorithm>
    using namespace std;
    struct node
    {
        int a;
        int b;
    } s[101101];
    bool cmp(node A,node B)
    {
        return A.b>B.b;
    }
    int main()
    {
        int n,m;
        while(~scanf("%d%d",&n,&m))
        {
            int ss=0;   
            for(int i=0; i<n; i++)
            {
                scanf("%d",&s[i].a);
                s[i].b=s[i].a % 10;
                ss+=s[i].b+90;
            }
            sort(s,s+n,cmp);
            for(int i=0; i<n; i++)
            {
                int k=10-s[i].b;
                if(m>=k)
                {
                    if((s[i].a+k)<=100)
                    {
                        m-=k;
                        s[i].a+=k;
                    }
                }
                else
                {
                    m=0;
                    break;
                }
            }
            int sum=0;
            for(int i=0; i<n; i++)
            {
                int k1= s[i].a / 10 ;
                sum+=k1;
            }
            if(m>0)
            {
                sum+=min(m/10,(10*n)-sum);
            }
            printf("%d
    ",sum);
        }
        return 0;
    }
    

      

  • 相关阅读:
    PMP(第六版)十大知识领域、五大项目管理过程组、49个过程矩阵
    快速开发平台分享-UCML快速开发七种武器
    敏捷开发干货-快速开发平台的主题行为模型介绍
    MACHINE LEARNING
    What is “Neural Network”
    VS打开项目或解决方案卡死,一直处于未响应状态。
    Sql Server 本地(客户端)连接服务器端操作
    阿里云服务器,Sql Server 本地连接服务器端问题记录
    <%@ Register TagPrefix="uc1" TagName="user" Src="../Control/user.ascx" %>什么意思?
    IIS网站部署后,程序常见错误记录
  • 原文地址:https://www.cnblogs.com/qioalu/p/4875736.html
Copyright © 2011-2022 走看看