Description
LRC是校队里面的一个棋牌高手。12年夏天,他通过自习算法书上的“n皇后问题”,懂得了回溯算法。深爱国际象棋的他,对此题爱不释手。这时,
强神站了出来说:“如果,把皇后变成骑士,那么,LRC,你怎么看?”首先,骑士的攻击范围如图:
0X0X0
X000X
00K00
X000X
0X0X0
对于一个5*5的棋盘,0表示空位,K表示骑士,X表示骑士的攻击范围。
那么,对于一个n*n的棋盘,最多能够放多少个骑士,使得每个骑士两两之间不得攻击到呢?
LRC凌乱了,他向未来的ACMER求助。
未来的ACMER,你怎么看?
(出题人 胖子)
输入格式
只有一行,一个正整数N(N<=1000),表示现在有一个N*N的棋盘。
输出格式
输出一个整数,占一行,表示最多能放多少个骑士。
输入样例
3
输出样例
5
解题思路
规律题
PS: 最近比较懒。。在月末才赶紧放了个水题上来
#include<stdio.h>
int main()
{
int n, total;
scanf("%d", &n);
if(n == 1)
total = 1;
else if(n == 2)
total = 4;
else if(n % 2)
total = n * n / 2 + 1;
else
total = n * n / 2;
printf("%d\n", total);
return 0;
}