zoukankan      html  css  js  c++  java
  • Codeforces 201A Clear Symmetry

    解题思路:要你构造一个01正方形矩阵,矩阵需要满足1不能相邻,且矩阵对称,给你一个n ,问你包含n个1的最小正方形矩阵边长为多少。

    解题思路:1和3的情况需要特殊考虑,只有奇数可以实现这样的摆放 ,枚举奇数,把奇数矩阵分成4块求最大可放置矩阵。

    解题代码:

     1 // File Name: 201a.cpp
     2 // Author: darkdream
     3 // Created Time: 2015年03月10日 星期二 20时15分18秒
     4 
     5 #include<vector>
     6 #include<list>
     7 #include<map>
     8 #include<set>
     9 #include<deque>
    10 #include<stack>
    11 #include<bitset>
    12 #include<algorithm>
    13 #include<functional>
    14 #include<numeric>
    15 #include<utility>
    16 #include<sstream>
    17 #include<iostream>
    18 #include<iomanip>
    19 #include<cstdio>
    20 #include<cmath>
    21 #include<cstdlib>
    22 #include<cstring>
    23 #include<ctime>
    24 #define LL long long
    25 
    26 using namespace std;
    27 int dp[105];
    28 int mx[105];
    29 int main(){
    30    int n ;
    31    scanf("%d",&n);
    32    dp[1] = 1;
    33    dp[2] = 3;
    34    dp[4] = 3; 
    35    dp[5] = 3; 
    36    for(int i = 5;i <= 30;i +=2)
    37    {     
    38        int  t = i /2;
    39        mx[i] = (t/2)*4 + 1; 
    40        int k ; 
    41        if(t % 2 == 0 )
    42           k= t*t *2;
    43        else
    44           k=((t/2+1)*(t/2+1) + (t/2)*(t/2))*4;   
    45        mx[i] +=k; 
    46        for(int j =1 ;j <= min(mx[i],100) ;j ++)
    47        {
    48            if(dp[j] == 0 )
    49            {
    50                dp[j] = i ; 
    51            }
    52        }
    53    }
    54    printf("%d
    ",dp[n]);
    55 return 0;
    56 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    DBG
    gdb Debugging Full Example
    Java Warmup
    Dtrace for Linux 2016
    分布式系统理论进阶
    Java theory and practice
    Dealing with InterruptedException
    JVM 虚拟化
    Intro to Filtering with Network Monitor 3.0
    spring 官方文档
  • 原文地址:https://www.cnblogs.com/zyue/p/4329063.html
Copyright © 2011-2022 走看看