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题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. 冠军!天翼云在国际AI顶会大模型挑战赛中拔得头筹!

    6月7日,国际人工智能顶会CVPR 2023举办的第一届大模型挑战赛(CVPR 2023 Workshop on Foundation Model:1st foundation model chall ...

  2. 更换Linux系统镜像源

    更换Linux系统镜像源 切换镜像源通常是为了提高软件包下载的速度和稳定性.以下是CentOS 7切换镜像源的一般步骤: 一.安装wget(如果尚未安装) 首先,需要确保系统中安装了wget工具,因为 ...

  3. TortoiseGit 在windows11 中使用,建议升级到 2.13.0版本以后

  4. Java获得当前日期是星期几

    第一种方法:   /**   * 获取当前日期是星期几<br>   *   * @param date   * @return 当前日期是星期几   */   public String ...

  5. manim边学边做--相机Camera简介

    在Manim中,Camera是实现动画效果的重要工具之一. 它就像我们观察动画的 眼睛,通过控制相机的位置.角度和视野,可以创造出丰富多样的视觉效果. Manim社区版本中提供了多种Camera类型, ...

  6. 从零开始!Jupyter Notebook 安装教程

    一.引言 Jupyter Notebook 是一款非常实用的交互式编程环境,广泛应用于数据分析.机器学习.教学等领域.在安装 Jupyter Notebook 之前,需要确保计算机已安装 Python ...

  7. 普通文本(.txt)篇章排版样式参考 [文档说明][日志]

    把普通文本的篇章排版样式归总一下,供自己参考,当然如果读者能以此借鉴并学习到一些东西,是笔者最大的鼓励. 日志类 [1] 头标 [时间日期][备注][属性]内容 [2] [文件信息][符号][文件信息 ...

  8. 深入解析 Druid 连接池:连接有效性检测与 Keep-Alive 机制

    背景 在 Java 程序中,下面是一个经常会碰到的错误. Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communica ...

  9. vscode如何退出/切换 github 账号

    退出/切换 github 账号 左下角点击头像按钮,选择注销,然后再重新登录

  10. Win10下子系统Unbuntu18.04安装nginx

    1.Nginx的软件包在Ubuntu默认软件仓库中可用. 安装非常简单,只需键入以下命令: sudo apt update sudo apt install nginx 2.安装完成后,检查Nginx ...