• CodeForces 201A Clear Symmetry


     

    Consider some square matrix A with side n consisting of zeros and ones. There are n rows numbered from 1 to n from top to bottom and n columns numbered from 1 to n from left to right in this matrix. We'll denote the element of the matrix which is located at the intersection of the i-row and the j-th column as Ai, j.

    Let's call matrix A clear if no two cells containing ones have a common side.

    Let's call matrix A symmetrical if it matches the matrices formed from it by a horizontal and/or a vertical reflection. Formally, for each pair (i, j(1 ≤ i, j ≤ n) both of the following conditions must be met: Ai, j = An - i + 1, j and Ai, j = Ai, n - j + 1.

    Let's define the sharpness of matrix A as the number of ones in it.

    Given integer x, your task is to find the smallest positive integer n such that there exists a clear symmetrical matrix A with side n and sharpness x.

    Input

    The only line contains a single integer x (1 ≤ x ≤ 100) — the required sharpness of the matrix.

    Output

    Print a single number — the sought value of n.

    Sample test(s)
    input
    4
    output
    3
    input
    9
    outpu5
     
    给出了一个矩阵的几个定义(形状,整洁性,均匀性)后,每次给出一个x,求满足形状为x,整洁性,均匀性的n*n的矩阵中,最小的n
     
    YY一下,可以知道,n为偶数时一定不是最优解。
    当n为奇数时:若x在[l,r]内时n最小都是a[x]行,则在范围[r+1,r+(a[x]+1)*2]内时,n最小都是a[x]+2.
    特判1到5,则6~100递推一下就可以了。
     
     
     
     
     
     
     
     1 #include<cstdio>
     2 
     3 const int MAXN=105;
     4 
     5 int a[MAXN];
     6 
     7 int main()
     8 {
     9     a[1]=1;
    10     a[3]=5;
    11     a[2]=a[4]=a[5]=3;
    12     for(int i=5;i<MAXN;)
    13     {
    14         int x=(a[i]+1)*2;
    15         for(int j=i+1;j<=i+x;j++)
    16             a[j]=a[i]+2;
    17         i+=x;
    18     }
    19 
    20     int x;
    21     while(scanf("%d",&x)!=EOF)
    22     {
    23         printf("%d
    ",a[x]);
    24     }
    25 
    26     return 0;
    27 
    28 }
    View Code





    Note
     

    The figure below shows the matrices that correspond to the samples:

  • 相关阅读:
    垃圾处理现状
    买了个学生阿里云114元啊,安装mysql
    4 存储器
    3 总线
    崔大哥说基础很重要
    idea使用小积累mac
    为啥要用left join on where这样的东西
    观察者模式
    从shell中退出python命令
    locust性能测试入门
  • 原文地址:https://www.cnblogs.com/-maybe/p/4654766.html
Copyright © 2020-2023  润新知