zoukankan      html  css  js  c++  java
  • Atcoder ABC 069 C

    C - 4-adjacent


    Time limit : 2sec / Memory limit : 256MB

    Score : 400 points

    Problem Statement

    We have a sequence of length N, a=(a1,a2,…,aN). Each ai is a positive integer.

    Snuke's objective is to permute the element in a so that the following condition is satisfied:

    • For each 1iN1, the product of ai and ai+1 is a multiple of 4.

    Determine whether Snuke can achieve his objective.

    Constraints

    • 2N105
    • ai is an integer.
    • 1ai109

    Input

    Input is given from Standard Input in the following format:

    N
    a1 a2  aN
    

    Output

    If Snuke can achieve his objective, print Yes; otherwise, print No.


    Sample Input 1

    3
    1 10 100
    

    Sample Output 1

    Yes
    

    One solution is (1,100,10).


    Sample Input 2

    4
    1 2 3 4
    

    Sample Output 2

    No
    

    It is impossible to permute a so that the condition is satisfied.


    Sample Input 3

    3
    1 4 1
    

    Sample Output 3

    Yes
    

    The condition is already satisfied initially.


    Sample Input 4

    2
    1 1
    

    Sample Output 4

    No
    

    Sample Input 5

    6
    2 7 1 8 2 8
    

    Sample Output 5

    Yes
    1~n-1之间保证a[i]*a[i+1]%4==0
        #include <iostream>
        #include <algorithm>
        #include <cstring>
        #include <cstdio>
        #include <vector>
        #include <queue>
        #include <stack>
        #include <cstdlib>
        #include <iomanip>
        #include <cmath>
        #include <cassert>
        #include <ctime>
        #include <map>
        #include <set>
        using namespace std;
        #define lowbit(x) (x&(-x))
        #define max(x,y) (x>y?x:y)
        #define min(x,y) (x<=y?x:y)
        #define MAX 100000000000000000
        #define MOD 1000000007
        #define pi acos(-1.0)
        #define ei exp(1)
        #define PI 3.141592653589793238462
        #define ios() ios::sync_with_stdio(false)
        #define INF 1044266558
        #define mem(a) (memset(a,0,sizeof(a)))
        typedef long long ll;
        int a,b,c,x,n;
        int main()
        {
            while(scanf("%d",&n)!=EOF)
            {
                a=b=c=0;
                for(int i=0;i<n;i++)
                {
                    scanf("%d",&x);
                    if(!(x%4)) a++;
                    else if(x&1) b++;
                    else c++;
                }
                if(!c) b--;
                puts(a>=b?"Yes":"No");
            }
            return 0;
        }

    D - Grid Coloring


    Time limit : 2sec / Memory limit : 256MB

    Score : 400 points

    Problem Statement

    We have a grid with H rows and W columns of squares. Snuke is painting these squares in colors 1, 2, , N. Here, the following conditions should be satisfied:

    • For each i (1iN), there are exactly ai squares painted in Color i. Here, a1+a2++aN=HW.
    • For each i (1iN), the squares painted in Color i are 4-connected. That is, every square painted in Color i can be reached from every square painted in Color i by repeatedly traveling to a horizontally or vertically adjacent square painted in Color i.

    Find a way to paint the squares so that the conditions are satisfied. It can be shown that a solution always exists.

    Constraints

    • 1H,W100
    • 1NHW
    • ai1
    • a1+a2++aN=HW

    Input

    Input is given from Standard Input in the following format:

    H W
    N
    a1 a2  aN
    

    Output

    Print one way to paint the squares that satisfies the conditions. Output in the following format:

    c11  c1W
    :
    cH1  cHW
    

    Here, cij is the color of the square at the i-th row from the top and j-th column from the left.


    Sample Input 1

    2 2
    3
    2 1 1
    

    Sample Output 1

    1 1
    2 3
    

    Below is an example of an invalid solution:

    1 2
    3 1
    

    This is because the squares painted in Color 1 are not 4-connected.


    Sample Input 2

    3 5
    5
    1 2 3 4 5
    

    Sample Output 2

    1 4 4 4 3
    2 5 4 5 3
    2 5 5 5 3
    

    Sample Input 3

    1 1
    1
    1
    

    Sample Output 3

    1
    h*w的网格,填充颜色,颜色种类为n,a[i]*****a[n],为每种颜色的个数,保证所填充相等颜色之间必须联通,蛇形填充就行。
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <cstdlib>
    #include <iomanip>
    #include <cmath>
    #include <cassert>
    #include <ctime>
    #include <map>
    #include <set>
    using namespace std;
    #define lowbit(x) (x&(-x))
    #define max(x,y) (x>y?x:y)
    #define min(x,y) (x<=y?x:y)
    #define MAX 100000000000000000
    #define MOD 1000000007
    #define pi acos(-1.0)
    #define ei exp(1)
    #define PI 3.141592653589793238462
    #define ios() ios::sync_with_stdio(false)
    #define INF 1044266558
    #define mem(a) (memset(a,0,sizeof(a)))
    typedef long long ll;
    int g[110][110];
    int h,w,n,x,k;
    int main()
    {
        while(scanf("%d%d%d",&h,&w,&n)!=EOF)
        {
            mem(g);
            k=-1;
            for(int i=1;i<=n;i++)
            {
                scanf("%d",&x);
                while(x--) k++,g[(k/h)&1?(h-1-(k%h)):k%h][k/h]=i;
            }
            for(int i=0;i<h;i++)
            {
                for(int j=0;j<w;j++)
                {
                    if(j) printf(" ");
                    printf("%d",g[i][j]);
                }
                printf("
    ");
            }
        }
        return 0;
    }

  • 相关阅读:
    用C#制作PDF文件全攻略
    侦测软件鸟哥linux学习笔记之源代码安装侦测软件
    类模式Java设计模式之十五(桥接模式)类模式
    安装配置Maven入门什么是maven和maven的安装和配置安装配置
    查看表空间oracle rman catalog目录数据库创建过程查看表空间
    产品群体互联网产品设计规划产品群体
    问题修改highcharts 导出图片 .net c#(二)问题修改
    音频播放android4.2音频管理技术音频播放
    重启启动eclipse 中启动Tomcat超时了错误如下:重启启动
    关系建立对于内向、不善于社交的人来说,如何建立人脉?关系建立
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7473161.html
Copyright © 2011-2022 走看看