失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)

【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)

时间:2024-02-17 03:08:20

相关推荐

【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)

/problem/LightOJ-1010

给定一个m×n的棋盘,你想把棋子放在哪里。你必须找到棋盘上最多可以放置的骑士数量,这样就不会有两个骑士互相攻击。不熟悉棋手的注意,棋手可以在棋盘上攻击8个位置,如下图所示。

不论输入的m和n的大小,让m是较小的那一个

1、m == 1

2、m == 2

则可以放满一个田字格以后,空一个田字格,这样放

3、其他

棋盘分为两种颜色,放在较多的颜色的方格上(通过观察可以知道,在这种情况下,骑士是不会相互攻击的)

#include <iostream>#include <cstdio>using namespace std;int main (){int n,m,T,t;cin >> T;for(int i=1;i<=T;i++){cin >> m >> n;//m表示行数,n表示列数printf("Case %d: ",i);if(m > n){t = m;m = n;n = t;}if(m==1){cout << m*n << endl;continue; }if(m==2){if(n%4<2)cout << (n/4)*4 + (n%4)*2 << endl;elsecout << (n/4)*4 + 4 << endl;continue;}if((m*n)%2!=0)cout << (n*m)/2+1 << endl;elsecout << (n*m)/2 << endl;}return 0;}

如果觉得《【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。