• Codeforces Round #632 (Div. 2)


    题目链接:http://codeforces.com/contest/1333

    A思维题

    思路:要求黑的比白的多一个,黑的个数为黑的周围至少有一个白色的黑块的个数,白的个数为周围至少有一个黑的白块的个数,直接令str[n-1][m-1]为白块,其余为黑块即可,这样除了相邻白块的两个黑色的,其余黑色周围就没有白块,因此那些不算入个数,所以2-1=1就满足了

    //-------------------------------------------------
    //Created by HanJinyu
    //Created Time :一  5/ 4 14:17:40 2020
    //File Name :632A.cpp
    //-------------------------------------------------
    
    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <list>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    typedef double db;
    typedef long long ll;
    const int maxn = 200005;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--){
            int n,m;
            scanf("%d%d",&n,&m);
            for(int i=1;i<=n;i++)
            {
    
                for(int j=1;j<=m;j++)
                {
    
                    if(i==n&&j==m)
                        printf("W");
                    else
                        printf("B");
                }
                printf("
    ");
            }
        }
    
        return 0;
    }
    View Code

    B前缀和

    思路:满足i<j的两个数a[i]和a[j]可以将a[j]加上a[i]的值任意次,每次任取满足i<j的ij,那么我们可以前缀和a[i]=1和a[i]等于-1的情况获取区间的为1的个数和为-1的个数,当a[i]和b[i]不相等时,若b[i]>a[i],判断之前有没有1,若没有则不可能实现,若b[i]<a[i],判断之前有没有-1,若没有则不可能实现。

    //-------------------------------------------------
    //Created by HanJinyu
    //Created Time :一  5/ 4 16:56:31 2020
    //File Name :632B.cpp
    //-------------------------------------------------
    
    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <list>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    typedef double db;
    typedef long long ll;
    const int maxn = 200005;
    
    int main()
    {
        #ifdef ONLINE_JUDGE
        #else
        freopen("in.txt","r",stdin);
        #endif
        int T;
        scanf("%d",&T);
        while(T--){
            int n;
            scanf("%d",&n);
            ll a[maxn],b[maxn];
            for(int i=0;i<n;i++)
                scanf("%lld",a+i);
            for(int i=0;i<n;i++)
                scanf("%lld",b+i);
            int yi[maxn],fu[maxn];
            for(int i=0;i<n;i++)
            {
                if(a[i]==-1){
                        fu[i]=1;
                        yi[i]=0;
                }
                else if(a[i]==0){
                        fu[i]=0;
                        yi[i]=0;
                }
                else{
                    yi[i]=1;
                    fu[i]=0;
                }
          }
    
            for(int i=1;i<n;i++)
            {
                yi[i]+=yi[i-1];
                fu[i]+=fu[i-1];
            }
            bool flag=false;
            for(int i=0;i<n;i++){
                if(b[i]!=a[i]&&i==0){
                    flag=true;
                    break;
                }
                else if(b[i]!=a[i])
                {
    
                    if(b[i]>a[i]&&yi[i-1]<=0){
                        flag=true;
                        break;
                    }
                    else if(b[i]<a[i]&&fu[i-1]<=0){
                        flag=true;
                        break;
                    }
                }
            }
            if(flag)
                printf("NO
    ");
            else
                printf("YES
    ");
    
            }
         return 0;
    }
    View Code
  • 相关阅读:
    GridView使用技巧
    ilspy反编译
    Editplus php
    SQL 日期相减(间隔)datediff函数
    cmd创建文件命令
    iis7 bug解决
    删除qq互联
    discuz 数据库文件密码修改
    linux zip命令
    asp.net调用js方法
  • 原文地址:https://www.cnblogs.com/Vampire6/p/12830722.html
Copyright © 2020-2023  润新知