CF651 A B

A

题意:有两个游戏机在玩游戏,但是只有一个充电器,两个游戏机必须都要有电游戏才能继续。有电的标准是有一个电就行。

贪心,瞎鸡巴写了个代码,

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int main()
{
    int a1,a2;
    while(~scanf("%d%d",&a1,&a2))
    {
        int sum=0;
        while(1)
        {
            if(a1<=0||a2<=0)
            {
                break;
            }
            if(a1>a2)
            {
                int k1=a1-1;
                if(k1==1)
                {
                    sum++;
                    break;
                }
                k1/=2;
                a2+=k1;
                sum+=k1;
                a1=a1-k1*2;
            }
            else
            {
                int k2=a2-1;
                if(k2==1)
                {
                    sum++;
                    break;
                }
                else if(k2==0)
                {
                    break;
                }
                k2/=2;
                sum+=k2;
                a1+=k2;
                a2=a2-k2*2;
            }
        }
        printf("%d
",sum);
    }
    return 0;
}

 B

题意:给你一个无序的序列,从头到尾遍历时,如果后面比前面大,happy值+1,问怎样排列才能使得happy值最大。

瞎鸡巴写的2333

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int s[1011],a[1101];
int main()
{
    int n,d;
    while(~scanf("%d",&n))
    {
        int max1=-1;
        memset(s,0,sizeof(s));
        int ak=0;
        for(int i=0; i<n; i++)
        {
            scanf("%d",&d);
            s[d]++;
            if(s[d]==1)
            {
                a[ak++]=d;
            }
            if(s[d]>max1)
            {
                max1=s[d];
            }
        }
        sort(a,a+ak);
        int sum=0;
        for(int i=1; i<=max1; i++)
        {
            int f=0;
            for(int j=0; j<ak; j++)
            {
                if(s[a[j]]>0)
                {
                    if(f==0)
                    {
                        f=1;
                    }
                    else
                    {
                        sum++;
                    }
                    s[a[j]]--;
                }
            }
        }
        printf("%d
",sum);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/qioalu/p/5253290.html