CF1627B题解
Not Sitting
题面翻译
Rahul 和 Tina 在玩一个游戏。游戏在一个 n×mn\times mn×m 的网格图上进行,记第 rrr 行第 ccc 列上的格子为 (r,c)(r,c)(r,c)。定义 (a,b)(a,b)(a,b) 与 (c,d)(c,d)(c,d) 之间的距离为 ∣a−c∣+∣b−d∣\left|a-c\right|+\left|b-d\right|∣a−c∣+∣b−d∣。
游戏开始后,Tina 会选择恰好 kkk 个格子,并将其涂成粉红色。涂完以后,Rahul 会选择任意一个没有被涂成粉红色的格子并在那个格子上坐下。此后,Tina 也会选择任意一个格子(包括被涂成粉红色和没有被涂成粉红色的格子)并在那个格子上坐下。Rahul 希望他和 Tina 之间的距离尽可能近,而 Tina 希望她和 Rahul 之间的距离尽可能远。于是,对于所有的 k∈[0,n×m−1]∩N∗k\in[0,n\times m-1]\cap\mathbb N ^*k∈[0,n×m−1]∩N∗,Rahul 都想知道他和 Tina 之间的距离是多少。
数据范围:
- ttt 组数据,1⩽t⩽5×1041\leqslant t\leqslant 5\times 10^41⩽t⩽5×104。
- 2⩽n×m,∑(n×m)⩽1052\leqslant n\times m,\sum(n\times m)\leqslant 10^52⩽n×m,∑(n×m)⩽105。
样例 #1
样例输入 #1
2
4 3
1 2
样例输出 #1
3 3 4 4 4 4 4 4 5 5 5 5
1 1
主要思路:模拟+贪心
Rahul 先选择位置,假设刚开始所有位置都未被涂色,那么 Rahul 一定会选择最靠近中间的某个位置;而 Tina 一定会选择四个墙角中离 Rahul 最远的一个位置。
对于每一个被涂色的格子,总是被涂色前 Rahul 的最佳选择,因为他们的选择都是明智的,也就是说我们可以将被涂色的格子作为 Rahul 的位置。
因为每个格子都会被涂色,所以每个格子都会作为 Rahul 的座位。
这样,问题就简化为了:求出每个位置距离四个角落的距离的最大值,然后将他们放到一个数组中,从小到大排序输出即可。
附源码:
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int res[N];
int n, m, cnt;
int main(){
int T;
cin>>T;
while(T--){
cnt=0;//多组不清空,提交两行泪
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){//教室是二维的,要双重循环
res[cnt++]=max(max(abs(1-i)+abs(1-j),abs(n-i)+abs(1-j)),max(abs(1-i)+abs(m-j),abs(n-i)+abs(m-j)));//求每个位置距离四个角落的距离的最大值
}
}
sort(res,res+cnt);//排序
for(int i=0;i<cnt;i++){
cout<<res[i]<<' ';//输出
}
cout<<endl;//多组数据换行
}
return 0;
}
CF1627B题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 冠军!天翼云在国际AI顶会大模型挑战赛中拔得头筹!
6月7日,国际人工智能顶会CVPR 2023举办的第一届大模型挑战赛(CVPR 2023 Workshop on Foundation Model:1st foundation model chall ...
- 更换Linux系统镜像源
更换Linux系统镜像源 切换镜像源通常是为了提高软件包下载的速度和稳定性.以下是CentOS 7切换镜像源的一般步骤: 一.安装wget(如果尚未安装) 首先,需要确保系统中安装了wget工具,因为 ...
- TortoiseGit 在windows11 中使用,建议升级到 2.13.0版本以后
- Java获得当前日期是星期几
第一种方法: /** * 获取当前日期是星期几<br> * * @param date * @return 当前日期是星期几 */ public String ...
- manim边学边做--相机Camera简介
在Manim中,Camera是实现动画效果的重要工具之一. 它就像我们观察动画的 眼睛,通过控制相机的位置.角度和视野,可以创造出丰富多样的视觉效果. Manim社区版本中提供了多种Camera类型, ...
- 从零开始!Jupyter Notebook 安装教程
一.引言 Jupyter Notebook 是一款非常实用的交互式编程环境,广泛应用于数据分析.机器学习.教学等领域.在安装 Jupyter Notebook 之前,需要确保计算机已安装 Python ...
- 普通文本(.txt)篇章排版样式参考 [文档说明][日志]
把普通文本的篇章排版样式归总一下,供自己参考,当然如果读者能以此借鉴并学习到一些东西,是笔者最大的鼓励. 日志类 [1] 头标 [时间日期][备注][属性]内容 [2] [文件信息][符号][文件信息 ...
- 深入解析 Druid 连接池:连接有效性检测与 Keep-Alive 机制
背景 在 Java 程序中,下面是一个经常会碰到的错误. Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communica ...
- vscode如何退出/切换 github 账号
退出/切换 github 账号 左下角点击头像按钮,选择注销,然后再重新登录
- Win10下子系统Unbuntu18.04安装nginx
1.Nginx的软件包在Ubuntu默认软件仓库中可用. 安装非常简单,只需键入以下命令: sudo apt update sudo apt install nginx 2.安装完成后,检查Nginx ...