zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 84 Div2

    A.Sum of Odd Integers

    原题

    题意:给你 n 和 k ,问你 n 能否由 k 个不同的奇数组成

    首先只有 k 和 n 的奇偶性相同才有可能,其次 k 个奇数最小能组成的数必须小于等于 n ,即 k*k<=n 才可以

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
           ll n,k;
           scanf("%lld%lld",&n,&k);
           if((n%2&&k%2)||(n%2==0&&k%2==0))
           {
            if(n>=k*k)
                printf("YES
    ");
             else
                printf("NO
    ");
           }
           else
           {
              printf("NO
    ");
           }
        }
    return 0;
    }
    

    B.Princesses and Princes

    原题

    这题也太长了吧TnT

    题意:给你个数字 n,然后给你 n 个区间,对于每个区间,你要选择该区间中没有被选择过的最小的数,如果到最后你选择的数不足 n 个,你可以让任意一个没有选择过数的区间选择任意一个没被选择的数(先打印 IMPROVE ),否则打印 OPTIMAL

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int a[100005],v[100005];
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            int n,x,ans=0;
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
            {
               int j,k,flag=0,t;
               scanf("%d",&k);
               for( j=1;j<=k;j++)
               {
                 scanf("%d",&t);
                 if(!v[t]&&!flag)
                 {
                    v[t]=1;
                    flag=1;
                    ans++;
                 }
               }
               if(flag==0)//没有选过数,把这个区间记下来
                x=i;
            }
            if(ans==n)
                printf("OPTIMAL
    ");
            else
            {
                printf("IMPROVE
    ");
                printf("%d ",x);
                for(int i=1;i<=n;i++)
                {
                  if(!v[i])
                    {printf("%d
    ",i);
                    break;
                    }
                }
            }
            memset(v,0,sizeof(v));
        }
    return 0;
    }
    
    

    C.Game with Chips

    原题

    题意:在一个 N*M 的矩阵中,给你 k 个起始点和 k 个目标点,你可以进行移动操作,每次可以让所有起始点向同一个方向移动一格,要让每个点至少走一遍它对应的目标点,总移动次数不超过 2*N*M 次。

    直接先把所有点都聚集到左上方(该操作肯定不超过 N*M 次),再直接从左上角跑到右下角,把整张图跑一遍(该操作肯定不超过 N*M 次),总共移动次数不超过 2*N*M 次

    #include<bits/stdc++.h>
    using namespace std;
    struct p
    {
        int x,y;
    } v[250];
    struct m
    {
        int x,y;
    } c[250];
    char step[100000005];
    int main()
    {
        int n,m,k,cot=1,maxx=-1,maxy=-1;
        cin>>n>>m>>k;
        for(int i=1; i<=k; i++)
        {
            scanf("%d%d",&v[i].x,&v[i].y);
            maxx=max(v[i].x,maxx);
            maxy=max(v[i].y,maxy);
        }
        for(int i=1; i<=k; i++)
        {
            scanf("%d%d",&c[i].x,&c[i].y);
        }
        for(int i=1; i<maxx; i++)
        {
            step[cot++]='U';
        }
        for(int j=1; j<maxy; j++)
        {
            step[cot++]='L';
        }
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<m; j++)
            {
                if(i%2)
                    step[cot++]='R';
                else
                    step[cot++]='L';
            }
            if(i!=n)
                step[cot++]='D';
        }
        printf("%d
    ",cot-1);
        for(int i=1; i<=cot-1; i++)
            printf("%c",step[i]);
        return 0;
    }
    
    
    戒骄戒躁,百炼成钢!
  • 相关阅读:
    hadoop-eclipse插件的使用
    python IDLE的执行py文件
    【转】Java Commons.IO 库官方文档
    【转】Java 集合框架之 WeakHashMap 和 IdentityHashMap 介绍
    JavaSE 中的队列简介
    【转】Java 集合之Hash 表
    【转】博客园转载别人的文章
    Java 中 深入理解 HashMap 和 TreeMap 的区别
    Java 中 equals() 和 hashcode() 方法详解
    百度搜索常用技巧
  • 原文地址:https://www.cnblogs.com/Pecoz/p/12558178.html
Copyright © 2011-2022 走看看