Codeforces Beta Round 32 (Div. 2, Codeforces format) D. Constellation 题解 枚举

Constellation

题目描述

A star map in Berland is a checked field n × m n×m n×m squares. In each square there is or there is not a star. The favorite constellation of all Berland’s astronomers is the constellation of the Cross. This constellation can be formed by any 5 stars so, that for some integer x x x (radius of the constellation) the following is true:

  • the 2nd is on the same vertical line as the 1st, but x x x squares up
  • the 3rd is on the same vertical line as the 1st, but x x x squares down
  • the 4th is on the same horizontal line as the 1st, but x x x squares left
  • the 5th is on the same horizontal line as the 1st, but x x x squares right

Such constellations can be very numerous, that’s why they are numbered with integers from 1 on the following principle: when two constellations are compared, the one with a smaller radius gets a smaller index; if their radii are equal — the one, whose central star if higher than the central star of the other one; if their central stars are at the same level — the one, whose central star is to the left of the central star of the other one.

Your task is to find the constellation with index k k k by the given Berland’s star map.

输入格式

The first line contains three integers n n n , m m m and k k k ( 1 < = n , m < = 300 , 1 < = k < = 3 × 1 0 7 1<=n,m<=300,1<=k<=3×10^{7} 1<=n,m<=300,1<=k<=3×107 ) — height and width of the map and index of the required constellation respectively. The upper-left corner has coordinates ( 1 , 1 ) (1,1) (1,1) , and the lower-right — ( n , m ) (n,m) (n,m) . Then there follow n n n lines, m m m characters each — description of the map. j j j -th character in i i i -th line is “*”, if there is a star in the corresponding square, and “.” if this square is empty.

输出格式

If the number of the constellations is less than k k k , output -1. Otherwise output 5 lines, two integers each — coordinates of the required constellation. Output the stars in the following order: central, upper, lower, left, right.

题面翻译

题目描述

一个Berland星空图填充了一个 N × M N×M N×M 的矩形。Berland的十字星座是所有的天文学家最喜欢的星座。这个星座由 5 5 5 个星星组成。对于星座的半径 x x x 5 5 5 个星星的位置关系有以下原则:

第二个和第一个在同一条垂直线上,但是在第一个的上边 x x x 单位处。

第三个和第一个在同一条垂直线上,但是在第一个的下边 x x x 单位处。

第四个和第一个在同一水平线上,但是在第一个的左边 x x x 单位处。

第五个和第一个在同一水平线上,但是在第一个的右边 x x x 单位处。

对于星座的索引:更小的半径会有更小的索引。如果它们的半径相等,位于更上边更左边的中心恒星所在的十字星座索引更小。

你的任务是找到索引为 K K K 的星座的Berland星空图。

输入格式

第一行包含三个整数 N , M N,M N,M K K K( 1 ≤ N , M ≤ 300 , 1 ≤ K ≤ 3 × 1 0 7 1 ≤ N,M ≤ 300,1 ≤ K ≤ 3×10^7 1N,M3001K3×107),分别为地图的高,宽和所求星座的索引。下面输入 N N N 行, M M M 列的字符来描述星空图。左上角坐标为 ( 1 , 1 ) (1,1) (1,1),右下角坐标为 ( N , M ) (N,M) (N,M)

输出格式

如果星座索引小于 k k k,输出 − 1 -1 1。否则输出 5 5 5 行,每行分别两个整数,即星座的每一个星星的坐标。按照中心、上、下、左、右的顺序输出星星。

样例 #1

样例输入 #1

5 6 1
....*.
...***
....*.
..*...
.***..

样例输出 #1

2 5
1 5
3 5
2 4
2 6

样例 #2

样例输入 #2

5 6 2
....*.
...***
....*.
..*...
.***..

样例输出 #2

-1

样例 #3

样例输入 #3

7 7 2
...*...
.......
...*...
*.***.*
...*...
.......
...*...

样例输出 #3

4 4
1 4
7 4
4 1
4 7

原题

Codeforces——传送门
洛谷——传送门

代码

#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
typedef long long ll;int main()
{ios::sync_with_stdio(0);cin.tie(0);int n, m, k;cin >> n >> m >> k;vector<vector<char>> g(n + 1, vector<char>(m + 1, 0)); // 存图for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> g[i][j];}}int cnt = 0;                                             // 当前十字星座个数for (int r = 1; r <= max((n - 1) / 2, (m - 1) / 2); r++) // 枚举半径{// 枚举中心星的坐标for (int i = 1 + r; i <= n - r; i++){for (int j = 1 + r; j <= m - r; j++){// 十字星座的五个顶点均为'*'if (g[i][j] == '*' && g[i - r][j] == '*' && g[i + r][j] == '*' && g[i][j - r] == '*' && g[i][j + r] == '*'){cnt++;        // 星座个数++if (cnt == k) // 找到第k个星座,直接输出答案{cout << i << ' ' << j << '\n';cout << i - r << ' ' << j << '\n';cout << i + r << ' ' << j << '\n';cout << i << ' ' << j - r << '\n';cout << i << ' ' << j + r << '\n';return 0;}}}}}// 星座数小于k,输出-1cout << -1 << '\n';return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA高级进阶13单元测试、反射、注解

第十三天、单元测试、反射、注解 单元测试 介绍 单元测试 就是针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 咱们之前是如何进行单元测试的&#xff1f; 有啥问题 &#xff1f; 只能在main方法编写测试代码&#xff0c;去调用其他方法进行测试。 …

页面开发感想

页面开发 1、 前端预览 2、一些思路 2.1、首页自定义element-plus的走马灯 :deep(.el-carousel__arrow){border-radius: 0%;height: 10vh; }需要使用:deep(标签)才能修改样式 或者 ::v-deep 标签 2.2、整体设计思路 <template><div class"card" style&…

【ChatBI】text2sql-不需要访问数据表-超轻量Python库Vanna快速上手,对接oneapi

oneapi 准备 首先确保你有oneapi &#xff0c;然后申请 kimi的api 需要去Moonshot AI - 开放平台 然后添加一个api key 然后打开oneapi的渠道界面&#xff0c;添加kimi。 然后点击 测试&#xff0c; 如果能生成响应时间&#xff0c;就是配置正确。 然后创建令牌 http:…

Vllm Offline 启动

Vllm Offline 启动 Vllm Offline 启动&#xff0c;设置环境变量&#xff0c; TRANSFORMERS_OFFLINE1reference: https://github.com/vllm-project/vllm/discussions/1405

Linux shell编程学习笔记60:touch命令

0 前言 在csdn技能树Linux入门的练习题中&#xff0c;touch是最常见的一条命令。这次我们就来研究它的用法。 1 touch命令的功能、格式和选项说明 我们可以使用touch --help命令查看touch命令的帮助信息。 [purpleendurer bash ~ ]touch --help Usage: touch [OPTION]... …

MATLAB-NGO-CNN-SVM,基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类)

NGO-CNN-SVM&#xff0c;基于NGO苍鹰优化算法优化卷积神经网络CNN结合支持向量机SVM数据分类(多特征输入多分类) 1.数据均为Excel数据&#xff0c;直接替换数据就可以运行程序。 2.所有程序都经过验证&#xff0c;保证程序可以运行。 3.具有良好的编程习惯&#xff0c;程序均…

【Android面试八股文】Activity A跳转B,B跳转C,A不能直接跳转到C,A如何传递消息给C?

文章目录 1. 使用Intent传递消息2. 使用全局单例类(Singleton)3. 使用静态变量4. 使用Application全局静态变量5. 使用 Android系统剪切板(Clipboard)6. 本地化存储方式6.1 使用SharedPreferences6.2 使用File文件存储方式传递消息6.3 使用SQLite数据库方式传递消息7. 使用广…

【Spring Boot】Java 的数据库连接模板:JDBCTemplate

Java 的数据库连接模板&#xff1a;JDBCTemplate 1.JDBCTemplate 初识1.1 JDBC1.2 JDBCTemplate 2.JDBCTemplate 实现数据的增加、删除、修改和查询2.1 配置基础依赖2.2 新建实体类2.3 操作数据2.3.1 创建数据表2.3.2 添加数据2.3.3 查询数据2.3.4 查询所有记录2.3.5 修改数据2…

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…

深度学习实战81-基于大模型的Chatlaw法律问答中的知识图谱融合思路,数据集说明、以及知识图谱对ChatLaw的影响介绍

大家好,我是微学AI,今天给大家介绍一下深度学习实战81-基于大模型的Chatlaw法律问答中的知识图谱融合思路,数据集说明、以及知识图谱对ChatLaw的影响介绍。基于大模型的Chatlaw法律问答系统融合了知识图谱,以提高法律咨询服务的可靠性和准确性。Chatlaw通过结合知识图谱与人…

AES加密算法及AES-CMAC原理白话版系统解析

本文框架 前言1. AES加密理论1.1 不同AES算法区别1.2 加密过程介绍1.2.1 加密模式和填充方案选择1.2.2 密钥扩展1.2.3分组处理1.2.4多轮加密1.2.4.1字节替换1.2.4.2行移位1.2.4.3列混淆1.2.4.4轮密钥加1.3 加密模式1.3.1ECB模式1.3.2CBC模式1.3.3CTR模式1.3.4CFB模式1.3.5 OFB模…

redis 单节点数据如何平滑迁移到集群中

目的 如何把一个redis单节点的数据迁移到 redis集群中 方案&#xff1a; 使用命令redis-cli --cluster import 导入数据至集群 --cluster-from <arg>--cluster-from-user <arg> 数据源用户--cluster-from-pass <arg> 数据源密码--cluster-from-askpass--c…

css_22_过渡动画

一.过渡 transition-property 作用&#xff1a;定义哪个属性需要过渡。结构&#xff1a; transition-property: all; 常用值&#xff1a; 1.none&#xff1a;不过渡任何属性。 2.all&#xff1a;过渡所有能过渡的属性。 3&#xff0e;具体某个属性名&#xff0c;例如&#xf…

驾校预约小程序系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学员管理&#xff0c;教练管理&#xff0c;驾校信息管理&#xff0c;驾校车辆管理&#xff0c;教练预约管理&#xff0c;考试信息管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;驾校信息&a…

Java基础——五、继承

五、继承 简要 1、说明 继承(Inheritance)是面向对象编程(OOP)的一个核心概念&#xff0c;它允许一个类(子类)继承另一个类(父类)的属性和方法&#xff0c;从而实现代码重用和结构化组织。通过继承&#xff0c;子类可以扩展父类的功能或者对父类的方法进行重写。 父类(超类…

基于docker安装redis服务

Redis是我们在项目中经常需要使用的缓存数据库&#xff0c;安装redis的方式也有很多&#xff0c;本文主要是给大家讲解如何基于docker进行redis服务的安装&#xff0c;主要介绍&#xff0c;如何拉取redis镜像、如何挂载redis的数据以及使用redis的配置文件和开启认证等功能&…

steam社区载入失败、加载不出来、打不开?

随着steam夏季大促的到来&#xff0c;最近steam在线用户越来越多了&#xff0c;很多玩家在自己喜欢的游戏社区里看最新的玩法、攻略和玩家的游戏心得。不过有不少玩家表示有时候会打不开游戏社区或是社区加载失败等问题。根据大家遇到的问题&#xff0c;这里总结了几种解决方法…

构建现代医疗:互联网医院系统源码与电子处方小程序开发教学

本篇文章&#xff0c;笔者将探讨互联网医院系统的源码结构和电子处方小程序的开发&#xff0c;帮助读者更好地理解和掌握这些前沿技术。 一、互联网医院系统源码结构 互联网医院系统通常由多个模块组成&#xff0c;每个模块负责不同的功能。以下是一个典型的互联网医院系统的主…

基于C语言的Jacobi迭代和Gauss-Seidel迭代的方程组求解实现

文章目录 Jacobi迭代方法介绍Gauss-Seidel迭代方法介绍具体代码实现示例题目实现效果 Jacobi迭代方法介绍 Jacobi迭代法是一种简单的迭代求解方法&#xff0c;适用于严格对角占优矩阵。其基本思想是利用当前迭代步的已知解来更新下一个迭代步的解。在C语言实现中&#xff0c;我…

商协会小程序如何提升商协会形象?

商协会小程序在提升商协会形象方面扮演着重要角色。以下是关于商协会小程序如何提升商协会形象的一些场景分析&#xff1a; 1、数字化名片与品牌形象展示 小程序可以作为商协会的数字名片&#xff0c;通过展示商会文化、活动信息和会员服务&#xff0c;有效提升商会的品牌形象…