• Codeforces Round #335 (Div. 2)


    Codeforces Round #335 (Div. 2)

    A. Magic Spheres

    题意:三种颜色的球,其中任意两个相同颜色的球能换成其他颜色的球。问,给出各个颜色的球的,能不能满足最后要求的相应颜色球的数量;

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll a,b,c;
    ll x,y,z;
    int main()
    {
        while(~scanf("%I64d%I64d%I64d",&a,&b,&c))
        {
            scanf("%I64d%I64d%I64d",&x,&y,&z);
            ll ans=0;
            ll sum=0;
            if(a-x>=0)
                ans+=(a-x)/2;
            else
                sum+=x-a;
            if(b-y>=0)
                ans+=(b-y)/2;
            else
                sum+=y-b;
            if(c-z>=0)
                ans+=(c-z)/2;
            else
                sum+=z-c;
            if(ans-sum >=0 )
                printf("Yes
    ");
            else
                printf("No
    ");
        }
        return 0;
    }
    

    C. Sorting Railway Cars

    题意:一列带编号的cars,每次可以把一个编号的车移到最前面或者最后面,求让这列cars以升序的方式排列,最小的移动方案。

    这个和原来写的一道BC的题差不多,不过那个是只能放在末尾,直接让t=1 从开始一直搜下去,输出n-t就行了。这道题可以两边放,那样写明显就不对了。试了几组样例之后发现:不管是往前放还是往后放都是为了尽快的达到升序,而有些本来就是连续升序的cars就不用移动了,相对位置本身就是平衡的,所以只需要找出 最长连续上升子序列 的长度就行了(这里的 '连续' 是指 a[i]=a[i-1]+1),并且n^2是过不了的(dp方法没法写,n*logn的方法是 循环+二分搜索 ),不过这里有O(n)的方法。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int t;
    int a[100010];
    int num[100010];
    int main()
    {
        while(~scanf("%d",&t))
        {
            for(int i=1; i<=t; i++)
            {
                scanf("%d",&a[i]);
                num[a[i]]=i;
            }
            int ans=1;
            int sum=1;
            for(int i=2; i<=t; i++)
            {
                if(num[i]-num[i-1]>0)
                    sum++;
                else
                {
                    sum=1;
    
                }
                ans=max(ans,sum);
                //cout <<ans <<endl;
            }
            cout << t-ans <<endl;
        }
        return 0;
    }
  • 相关阅读:
    ==与===的区别判断
    javascript中new操作符
    javascript中toString和valueOf方法的区别
    数据库索引
    QVegas-一个升级版的TCP Vegas拥塞算法
    海量数据解决方式,知多少?
    最通俗易懂的网络应用层协议具体解释
    Android视图注入库:butterknife
    POJ 3210 : Coins
    ES6的新特性-让前后端差异越来越小
  • 原文地址:https://www.cnblogs.com/zzulipomelo/p/5034841.html
Copyright © 2020-2023  润新知