hrbust 1699 矩阵游戏【枚举找规律】

原创 2016年08月30日 15:56:53

矩阵游戏
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 25(10 users) Total Accepted: 8(8 users) Rating:  Special Judge: No
Description

        DreamGriselda玩腻了硬币游戏,于是就找来小胖子一起玩矩阵游戏。

    在一个n*n01矩阵A里,Dream要求在这个矩阵中不能存在两个1相邻,Griselda要求在这个矩阵中每个元素必须满足

Aij = An - i - 1, j  Aij = Ain - j - 1.(下标从0开始)
    她们问小胖子:已知这个矩阵里面有几个1,问n最小是多少才能同时满足DreamGriselda的要求。

小胖子又苦恼了~你可以帮助他么?

Input

    本题有多组测试数据,每组测试数据有一行。

    每行输入一个整数x (1 ≤ x ≤ 100)

Output
    每组输出占一行,输出n的最小值。
Sample Input

4

9

Sample Output

3

5

Hint
Author
sunshine@hrbust

思路:


1、首先确定,一个偶数的正方形是不可能达到最优解的。


2、然后我们枚举每一个奇数的极限情况(这里枚举前几个):


1
n==1时 ans=1

1 0 1
0 1 0
1 0 1
n==2时,ans=3

n==3时,这个矩阵不能够放置成功,那么ans=5

n==4时,ans=3

n==5时,ans=3

1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
枚举可以发现n为6-13的时候,ans=7

1 0 1 0 1 0 1
0 1 0 1 0 1 0
1 0 1 0 1 0 1
0 1 0 1 0 1 0
1 0 1 0 1 0 1
0 1 0 1 0 1 0
1 0 1 0 1 0 1
同样可以通过枚举发现,n为14-25的时候,ans=9.

那么发现这样一个规律:对应每一个奇数*奇数的矩阵,其可以放置的最大1的数量,能够作为一个分界点。n==3的时候是一个特殊例外,特判即可。


那么Ac代码:

#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        if(n==1)printf("1\n");
        else if(n==2)printf("3\n");
        else if(n==3)printf("5\n");
        else if(n==4)printf("3\n");
        else if(n==5)printf("3\n");
        else if(n>=6&&n<=13)printf("5\n");
        else if(n>=14&&n<=25)printf("7\n");
        else if(n>=26&&n<=41)printf("9\n");
        else if(n>=42&&n<=61)printf("11\n");
        else if(n>=62&&n<=85)printf("13\n");
        else printf("15\n");
    }
}



版权声明:0.0小白有写的不好不对的地方请指出~

java编写,求解规律数列!

如图示数列:输入一个奇数,求得该行的其他数字。 /** * 1 * 3 4 * 5 8 12 * 7 12 20 32 * 9 16 28 48 80 ...
  • dandelionLYY
  • dandelionLYY
  • 2018年01月05日 22:21
  • 41

hrbust 1397 XianGe的游戏II【KMP】

XianGe的游戏II Time Limit: 1000 MS Memory Limit: 65536 K   Total Submit: 188(68 user...
  • mengxiang000000
  • mengxiang000000
  • 2016年06月19日 18:57
  • 174

BZOJ-1228 E&D 博弈SG+找啊找啊找规律

讨厌博弈,找规律找半天还是错的.... 1228: [SDOI2009]E&D Time Limit: 10 Sec Memory Limit: 162 MB Submit: 666 Solv...
  • DaD3zZ
  • DaD3zZ
  • 2016年03月16日 17:36
  • 451

矩阵问题之//矩阵旋转//一道找规律的题

问题 C: 矩阵旋转 输入一个N*M的矩阵,要求将这个矩阵右转90度后输出。 例如矩阵:A B C 右转90度后变成: D A D E F ...
  • qq_40618238
  • qq_40618238
  • 2018年01月04日 10:55
  • 36

取石子游戏 【Beatty定理】

题目链接: http://acm.bnu.edu.cn/v3/problem_show.php?pid=1186 题目分析: xian
  • zhan723284893
  • zhan723284893
  • 2014年10月30日 21:53
  • 280

hrbust mengxiang000000 题册

原博客 -------------------------------------------------------------------------------------------...
  • qq_30591245
  • qq_30591245
  • 2017年05月09日 20:58
  • 471

Hrbust 1143 (bfs)

题意: 给出n*m的矩形地图,从一个原点出发找出小于等于原点的个数。 思路: 其实可以用深搜去写这道题,不过可以练习一下bfs的写题思路,注意点就是原点 的判断(check)和细节,比如...
  • Since_natural_ran
  • Since_natural_ran
  • 2017年04月19日 10:23
  • 203

hrbust真•找规律

Description 传说大家最喜欢找规律了是不是。 ^_^ 参见附表,表中都是5位数,他们有很强烈的规律性呦~当然他们肯定不止这么多。 请找出所有符合这样规律的五位数(不含前导0...
  • u010372095
  • u010372095
  • 2014年03月30日 16:42
  • 1140

枚举(最大子矩阵,LA 3029)

感觉枚举的问题想要优化就一定要一边枚举一边维护些东西,或者要预处理之类的。 记得以前做了一道题  http://blog.csdn.net/xl2015190026/article/detail...
  • xl2015190026
  • xl2015190026
  • 2016年10月27日 00:59
  • 340

HRBUST 2093 真•找规律

题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2093‘ 代码: #include #i...
  • qq_32473657
  • qq_32473657
  • 2016年03月21日 12:33
  • 131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hrbust 1699 矩阵游戏【枚举找规律】
举报原因:
原因补充:

(最多只允许输入30个字)