LightOJ - 1010 Knights in Chessboard(规律)
2024-10-20 21:02:55
题目链接:https://vjudge.net/contest/28079#problem/B
题目大意:给你一个nxm的棋盘,问你最多可以放几个骑士让他们互相攻击不到。骑士攻击方式如下图:
解题思路:当m和n都大于2时,ans=(m*n+1)/2
当m或n有一个为1时,ans=m*n
当m或n有一个为2时,那么我们可以考虑可以分出多少个2*2的格子(t田字格) ,那么我们可以一次把一个田字格全部放上马,然后间隔一个田字格,然后再放马,使m=max(n,m),判断田字格两两匹配后剩下的格子数tmp=m-m/4*4,若tmp>=2,ans=(m/4+1)*4,否则ans=m/4*4+tmp*2;
代码:
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std; int main(){
int t,m,n;
scanf("%d",&t);
for(int i=;i<=t;i++){
int ans;
scanf("%d%d",&m,&n);
if(m>&&n>)
ans=(m*n+)/;
if(m==||n==){
ans=m*n;
}
else if(m==||n==){
if(m<n)
swap(m,n);
ans=m/*;
//匹配了成对田字格后剩下的格子
int tmp=m-m/*;
if(m%>=)
ans+=;
else
ans+=m%*;
}
printf("Case %d: %d\n",i,ans);
}
}
最新文章
- java中static 和 final 的一些使用规则
- Javascirpt中创建对象的几种方式
- EPLAN部件库之共享方法
- Android之多线程断点下载
- ECharts 在同一个页面添加多个图表 并 给图表绑定事件
- Reporting Service报表项默认可见+号和-号的显示问题
- android studio导入 so ,jar 文件。
- Windows启动系统程序命令
- toB的产品经理和toc产品经理区别
- DTCMS自定义标签:获取所有栏目以及不显示指定栏目
- Java中4大基本加密算法解析
- CSS筛选器简单实例1
- jmeter学习笔记(一)
- Java开发笔记(七十)Java8新增的几种泛型接口
- delphi的流操作的语法
- Python字符串格式化--format()方法
- Scala并发编程【进阶】
- 2018-2019-2 20165212《网络对抗技术》Exp2 后门原理与实践
- sysbench 多线程异步io模拟mysql测试的脚本
- java基础学习总结——线程(一)
热门文章
- 第13章 MySQL服务器的状态--高性能MySQL学习笔记
- Codeforces Round #338 (Div. 2) D 数学
- 怎么用spring cloud service-id 进行调用接口
- I/O多路复用一些概念
- base64解码
- 2015年IPC网络摄像机技术发展现状分析
- centos7 ffmpeg安装
- /etc/rc.d/里文件的作用
- 有向图博弈+出度的结合 Codeforces Round #406 (Div. 2) C
- eclipse中修改svn用户名和密码