zoukankan      html  css  js  c++  java
  • Codeforces Round #627 (Div. 3)

    A. Yet Another Tetris Problem

    题意:俄罗斯方块 给你每一列的高度 每次只能竖着放尺寸2*1的长方形,问是否能全部消除

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int N=110;
    int a[N];
    int t,n;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            bool flag=true;
            scanf("%d",&n);
            for(int i=1;i<=n;i++) scanf("%d",&a[i]);
            sort(a+1,a+1+n);
            for(int i=n;i>=1;i--)
            for(int j=i;j>=1;j--)
            {
                if((a[i]-a[j])%2!=0)
                {
                    flag=false;
                    break;
                }
            }
            if(flag)
            printf("YES
    ");
            else
            printf("NO
    ");
        }
    }
    View Code

    B. Yet Another Palindrome Problem

    题意:找长度为3的回文串  只要找到两个不相邻的数相等就满足题意

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int N=5010;
    int a[N];
    int t,n;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            bool flag=false;
            scanf("%d",&n);
            for(int i=1;i<=n;i++) scanf("%d",&a[i]);
            
            for(int i=1;i<=n;i++)
            for(int j=n;j>=i+2;j--)
            {
                if(a[i]==a[j])
                {
                    flag=true;
                    break;
                }
            }
            if(flag)
            printf("YES
    ");
            else
            printf("NO
    ");
        }
    }
    View Code

    C. Frog Jumps

    题意:给一个字符串长度为n里面有'L' 'R' 分别可以向左或者向右移动d长度 在可以跳到终点n+1的情况下,问d最小是多长。

    分析:即求两个 ‘R’之间和最后一个‘R'和终点距离的最大值

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    const int N=200100;
    char s[N];
    int t;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            int x=0,res=0;
            scanf("%s",s+1);
            int len=strlen(s+1);
            for(int i=1;i<=len;i++)
            {
                if(s[i]=='R')
                {
                    res=max(res,i-x);
                    x=i;
                }
                
            }
            res=max(res,len+1-x);
            printf("%d
    ",res);
        }
    }
    View Code

    D. Pair of Topics

    题意 给两个长度为n的a,b数组,求满足  ai+aj>bi+bj (i<j)的i和j的对数

    分析:移向   ai-bi+aj-bj>0 另a-b=c  即满足  ci+cj>0 的对数

    故构造c数组 排序 二分或者双指针算出结果

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int N=200100;
    int a[N],b[N],q[N];
    long long n,ans;
    int main()
    {
        scanf("%lld",&n);
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        for(int i=1;i<=n;i++) scanf("%d",&b[i]);
         for(int i=1;i<=n;i++) q[i]=a[i]-b[i];
         sort(q+1,q+1+n);
             int l=1,r=n;
             while(l<r)
             {
                 if(q[l]+q[r]>0) 
                 {
                     ans+=r-l;
                     r--;
                 }
                 else l++; 
             }
             printf("%lld
    ",ans);
         
    }
    View Code
  • 相关阅读:
    x64下读取SSDT表,并且获取SSDT表函数.
    C++ 常用代码片段整理
    ShellCode 定位EIP
    内核与应用通讯的几种方式转载
    微服务之十四如何在 Ocelot 网关中配置多实例 Swagger 访问
    Win10 企业版激活方法
    centos7 给.sh 文件赋值可执行权限
    k8s nginx ingress 高可用部署(最新版,支持 k8s 1.221.19)第3篇 测试
    skywalking 跟踪grpc的链路
    k8s nginx ingress 高可用部署(最新版,支持 k8s 1.221.19)第一篇
  • 原文地址:https://www.cnblogs.com/daoyuan/p/12485070.html
Copyright © 2011-2022 走看看