Light oj 1010 Knights in Chessboard (思路,规律)
2018-03-26 17:34
459 查看
题意:给你一个n*m的地图,之后往地图上放马,马可以条8个方向(和中国象棋的马的跳法一样,但是马不是放在点上的而是放在格子里的),现在问你这n*m个地图里最多可以放几匹马
思路:
看图我们可以知道的是,马在黑色的格子里只能跳到白色的格子上,白色的格子只能跳到黑色的格子上,所以我们只需要将马放在黑色或者白色的格子上就好了,在一般情况下,他们的数量都是相等的,但是在n和m都是奇数的时候,他们会相差1,所以最后的值是当n和m都是奇数的时候的答案是n*m/2+1,其他情况是n*m/2,需要注意当n或者m是1或者是2的时候,前者可以直接放一排,而后者可以4个4个放(可以画个图)
上代码把#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n == 1 || m == 1)
{
printf("%d\n",m == 1 ? n : m);
}
else if(n == 2 || m == 2)
{
if(m == 2) swap(n,m);
int ans = m/4*4;
if(m%4 == 1)
{
ans+=2;
}
else if(m%4!=0)
{
ans+= 4;
}
printf("%d\n",ans);
}
else
{
if(n*m%2 == 0)
{
printf("%d\n",n*m/2);
}
else printf("%d\n",n*m/2+1);
}
}
}
思路:
看图我们可以知道的是,马在黑色的格子里只能跳到白色的格子上,白色的格子只能跳到黑色的格子上,所以我们只需要将马放在黑色或者白色的格子上就好了,在一般情况下,他们的数量都是相等的,但是在n和m都是奇数的时候,他们会相差1,所以最后的值是当n和m都是奇数的时候的答案是n*m/2+1,其他情况是n*m/2,需要注意当n或者m是1或者是2的时候,前者可以直接放一排,而后者可以4个4个放(可以画个图)
上代码把#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n == 1 || m == 1)
{
printf("%d\n",m == 1 ? n : m);
}
else if(n == 2 || m == 2)
{
if(m == 2) swap(n,m);
int ans = m/4*4;
if(m%4 == 1)
{
ans+=2;
}
else if(m%4!=0)
{
ans+= 4;
}
printf("%d\n",ans);
}
else
{
if(n*m%2 == 0)
{
printf("%d\n",n*m/2);
}
else printf("%d\n",n*m/2+1);
}
}
}
相关文章推荐
- lightoj 1010-Knights in Chessboard (规律)
- lightoj 1010 - Knights in Chessboard(找规律)
- LightOJ 1010 Knights in Chessboard (找规律)
- lightoj1010 Knights in Chessboard(找规律)
- LightOJ1010---Knights in Chessboard (规律题)
- Light OJ 1010 - Knights in Chessboard【思维】
- LightOJ 1010 Knights in Chessboard (规律)
- LightOJ 1010 Knights in Chessboard(数学规律)
- 1010 - Knights in Chessboard(找规律)
- Lightoj1010——Knights in Chessboard(找规律)
- LightOJ1010---Knights in Chessboard (规律题)
- LightOJ-1010-Knights in Chessboard [规律]
- lightoj 1010 - Knights in Chessboard (找规律思维)
- lightoj 1010 - Knights in Chessboard 【数学思维】
- 1010 - Knights in Chessboard
- lightoj-1010-Knights in Chessboard
- light1010 - Knights in Chessboard【找规律】
- Lightoj 1010 - Knights in Chessboard
- LightOJ 1010 Knights in Chessboard
- lightoj 1171 - Knights in Chessboard (II) 【奇偶图 最小割】