CodeForces 201A Clear Symmetry :寻找最小的n使n*n矩阵里面可以对称且不相邻的放下至少x个1 :数学/思维/找规律

首先n为偶数必然没有n为奇数优==

而n为奇数最多能放(n^n+1)/2个1

特别注意特判x=3的时候需要5个,因为3个那样放就相邻了==

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7   int n,i,tmp;
 8   scanf("%d",&n);
 9   if (n==3) {printf("5\n"); return 0; }
10   for (i=1;;i+=2)
11   {
12     tmp=(i*i+1)/2;
13     if (n<=tmp) {printf("%d\n",i); return 0; }
14   }
15 }

题目链接:http://codeforces.com/problemset/problem/201/A

posted on 2015-03-27 16:24  xiao_xin  阅读(177)  评论(0编辑  收藏  举报

导航