zoukankan      html  css  js  c++  java
  • Codeforces Round #127 (Div. 1) A. Clear Symmetry 打表

    A. Clear Symmetry

    题目连接:

    http://codeforces.com/contest/201/problem/A

    Description

    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 Input

    4

    Sample Output

    3

    Hint

    题意

    给你一个x,你需要找到一个最小的正方形,使得这个正方形里面有x个1

    这个正方形,需要满足1的方格不能相邻,且a[i][j]=a[n-i][j],a[i][j]=a[i][n-j],即上下对称,左右对称

    然后问你边长最小是多少

    题解:

    数学题 打表

    偶数是不考虑的,大概可以画画,很难满足对称性,且中间四个格子是浪费的

    然后只用考虑奇数的情况

    打表之后发现,奇数我们发现奇数长度的正方形能够容纳的1的个数满足公式2x(x+1)+1;

    然后套进去就好了

    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    int f(int x)
    {
        x--;
        return 2*x*(x+1)+1;
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        if(n==3)return puts("5");
        int ans = 1;
        while(f(ans)<n)
            ans++;
        cout<<ans*2-1<<endl;
    }
  • 相关阅读:
    C++中的explicitkeyword
    Stream使用教程
    Java实现最长回文串
    Java实现最长回文串
    Java实现最长回文串
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
    Java实现选择问题
  • 原文地址:https://www.cnblogs.com/qscqesze/p/5193561.html
Copyright © 2011-2022 走看看