【洛谷 P8695】[蓝桥杯 2019 国 AC] 轨道炮 题解(映射+模拟+暴力枚举+桶排序)

[蓝桥杯 2019 国 AC] 轨道炮

题目描述

小明在玩一款战争游戏。地图上一共有 N N N 个敌方单位,可以看作 2D 平面上的点。其中第 i i i 个单位在 0 0 0 时刻的位置是 ( X i , Y i ) (X_i, Y_i) (Xi,Yi),方向是 D i D_i Di (上下左右之一, 用 U/D/L/R 表示),速度是 V i V_i Vi。小明的武器是轨道炮,只能使用一次,不过杀伤力巨大。小明可以选择在某个非负整数时刻释放轨道炮,轨道炮一次可以消灭在一条直线 (平行于坐标轴) 上的所有敌方单位。请你计算小明最多能消灭多少敌方单位。

输入格式

输入第一行包含一个整数 N N N
以下 N N N 行每行包含 3 3 3 个整数 X i X_i Xi, Y i Y_i Yi, V i V_i Vi,以及一个大写字符 D i D_i Di

输出格式

输出一个整数代表答案。

样例 #1

样例输入 #1

4
0 0 1 R
0 10 1 R
10 10 2 D
2 3 2 L

样例输出 #1

3

提示

对于所有评测用例, 1 ≤ N ≤ 1000 1 \le N \le 1000 1N1000 − 1 0 6 ≤ X i , Y i ≤ 1 0 6 -10^6 \le X_i, Y_i \le 10^6 106Xi,Yi106 0 ≤ V i ≤ 1 0 6 0 \le V_i \le 10^6 0Vi106

蓝桥杯 2019 年国赛 A 组 H 题(C 组 J 题)


思路

首先定义一些常量、变量和数据结构。其中,N 是单位的最大数量,T 是模拟的最大时间。定义了一个 Unit 结构体,表示单位,包括单位的位置 (x, y),速度 v 和方向 d。定义了两个哈希表 cntXcntY,用于记录每个坐标上的单位数量。定义了一个哈希表 dir,用于记录每个方向的位移。

接着从输入中读取单位数量 n 和每个单位的信息,包括位置、速度和方向。然后进行 T 轮模拟,每轮模拟中,首先清空 cntXcntY,然后对每个单位进行移动,并更新 cntXcntY

cntXcntY 可以看作是桶,键是坐标,值是该坐标上的单位数量。对于每个单位,根据其位置更新 cntXcntY,将单位分布到桶中。然后找出 cntXcntY 中的最大值,更新最大消灭单位数量 ans

最后输出 ans


AC代码

#include <algorithm>
#include <cmath>
#include <iostream>
#include <map>
#define AUTHOR "HEX9CF"
using namespace std;
using ll = long long;const int N = 2e6 + 7;
const int T = 4e2 + 7;
const int INF = 0x3f3f3f3f;
const ll MOD = 1e9 + 7;int n;
map<int, ll> cntX, cntY;
map<char, pair<int, int>> dir;struct Unit {int x, y;int v;char d;
} unit[N];void init() {dir.clear();dir['L'] = {-1, 0};dir['R'] = {1, 0};dir['U'] = {0, 1};dir['D'] = {0, -1};
}int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);init();cin >> n;for (int i = 1; i <= n; i++) {int x, y, v;char d;cin >> x >> y >> v >> d;unit[i] = {x, y, v, d};}ll ans = 0;for (int t = 0; t <= T; t++) {cntX.clear();cntY.clear();for (int i = 1; i <= n; i++) {auto u = unit[i];cntX[u.x]++;cntY[u.y]++;}ll maxi = 0;for (const auto i : cntX) {maxi = max(maxi, i.second);}for (const auto i : cntY) {maxi = max(maxi, i.second);}// cout << maxi << endl;ans = max(ans, maxi);for (int i = 1; i <= n; i++) {int v = unit[i].v;auto dd = dir[unit[i].d];unit[i].x += v * dd.first;unit[i].y += v * dd.second;}}cout << ans << "\n";return 0;
}

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

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

相关文章

同步检查继电器 JT-1/200 100V 面板嵌入式安装,板后接线

系列型号 JT-1同步检查继电器&#xff1b; DT-1同步检查继电器&#xff1b; JT-3同步检查继电器&#xff1b; DT-3同步检查继电器&#xff1b; 一、应用范围 JT(DT)系列同步检查继电器用于两端供电线路的自动重合闸线路中&#xff0c;以检查线路上电压的存在及线路上和变电站汇…

基于Spring Boot的在线考试系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

element-ui breadcrumb 组件源码分享

今日简单分享 breadcrumb 组件的源码实现&#xff0c;主要从以下三个方面&#xff1a; 1、breadcrumb 组件页面结构 2、breadcrumb 组件属性 3、breadcrumb 组件 slot 一、breadcrumb 组件页面结构 二、breadcrumb 组件属性 2.1 separator 属性&#xff0c;分隔符&#xff…

程序员沟通之道:TCP与UDP之辩,窥见有效沟通的重要性(day19)

程序员沟通的重要性&#xff1a; 今天被师父骂了一顿&#xff0c;说我不及时回复他&#xff0c;连最起码的有效沟通都做不到怎么当好一个程序员&#xff0c;想想还挺有道理&#xff0c;程序员需要知道用户到底有哪些需求&#xff0c;用户与程序员之间的有效沟通就起到了关键性作…

Java多态世界(day18)

多态&#xff1a;重写的方法调用和执行 1.静态绑定&#xff1a;编译器在父类中找方法&#xff0c;如&#xff1a; 上面的eat&#xff08;&#xff09;方法是先在父类中找方法&#xff0c;父类没有的话&#xff0c;就算子类有编译也会报错。&#xff08;如果引用方法在父类中存…

UE4_普通贴图制作法线Normal材质

UE4 普通贴图制作法线Normal材质 2021-07-02 10:46 导入一张普通贴图&#xff1a; 搜索节点&#xff1a;NormalFromHeightmap 搜索节点&#xff1a;TextureObjectparameter&#xff0c;并修改成导入的普通贴图&#xff0c;连接至HeightMap中 创建参数normal&#xff0c;连接…

Dockerfile详解构建镜像

Dockerfile构建企业级镜像 在服务器上可以通过源码或rpm方式部署Nginx服务&#xff0c;但不利于大规模的部署。为提高效率&#xff0c;可以通过Dockerfile的方式将Nginx服务封装到镜像中&#xff0c;然后Docker基于镜像快速启动容器&#xff0c;实现服务的快速部署。 Dockerf…

【Vue3】el-checkbox-group实现权限配置和应用

一. 需求 针对不同等级的用户&#xff0c;配置不同的可见项 配置效果如下 &#xff08;1&#xff09;新增&#xff0c;获取数据列表 &#xff08;2&#xff09;编辑&#xff0c;回显数据列表 应用效果如下 &#xff08;1&#xff09;父级配置 &#xff08;2&#xff09;子级…

详解TCP/IP五层模型

目录 一、什么是TCP五层模型&#xff1f; 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言&#xff1a; 在网络通信中&#xff0c;TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…

详解设计模式:单例的进化之路

概念 单例模式(Singleton Pattern)是设计模式中一个重要的模式之一&#xff0c;是确保一个类在任何情况下都绝对只有一个实例。单例模式一般会屏蔽构造器&#xff0c;单例对象提供一个全局访问点&#xff0c;属于创建型模式。 根据初始化时间的不同&#xff0c;可以将单例模式…

文件操作讲解

目录 一.为什么使用文件 二.什么是文件 2.1程序文件 2.2数据文件 2.3文件名 三.文本文件和二进制文件 fwrite函数 fclose函数 四.文件的打开和关闭 4.1流和标准流 4.2文件指针 4.3文件的打开和关闭 五.文件的顺序读写 5.1文件的顺序读写函数 5.1.1fgetc函数…

【软件工程】概要设计

1. 导言 1.1 目的 该文档的目的是描述学生成绩管理系统的概要设计&#xff0c;其主要内容包括&#xff1a; 系统功能简介 系统结构简介 系统接口设计 数据设计 模块设计 界面设计 本文的预期读者是&#xff1a; 项目开发人员 项目管理人员 项目评测人员&#xff08;…

VS2022使用属性表快速设置OpenCV工程属性

1.创建C++控制台应用 2.配置工程 3.打开工程后,为工程添加属性表 打开属性管理器窗口,选择Debug|x64 然后右击选择添加新的项目属性表 并命名为opencv490_debug_x64 点击添加 Debug版本属性表添加成功 使用相同方法添加Release版本属性表

Windows通过git配置github代码仓库全流程

git git是代码的版本控制工具 git安装和github注册 这个默认弄过了 通过git和github之间的SSH配置 在github上面新建仓库&#xff0c;做好配置 git绑定GitHub账号 先cd到上传的文件所在的目录 git config --global user.name "你的github用户名"git config -…

网络原理 - HTTP / HTTPS(3)——http响应

目录 一、认识 “状态码”&#xff08;status code&#xff09; 常见的状态码 &#xff08;1&#xff09;200 OK &#xff08;2&#xff09;404 Not Found &#xff08;3&#xff09;403 ForBidden &#xff08;4&#xff09;405 Method Not Allowed &#xff08;5&…

基于java实现的弹幕视频网站

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示自定义字符应用

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864显示自定义字符应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD12864简单介绍一、LCD…

使用ffmpeg将视频解码为帧时,图像质量很差

当使用ffmpeg库自带的ffmpeg.exe对对视频进行解帧或合并时&#xff0c;结果质量很差。导致这种原因的是在使用ffmpeg.exe指令进行解帧或合并时使用的是默认的视频码率&#xff1a;200kb/s。 如解帧指令&#xff1a; ffmpeg.exe -i 600600pixels.avi -r 2 -f image2 img/%03d.…

深度学习arm cache系列--一篇就够了

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] &#x1f448;&#x1f448;&#x1f448; 1. cache的基本概念介绍 1.1、为什么要用cache? ARM 架构刚开始开发时&#xff0c;处理器的时钟速度和内存的访问速度大致相似。今天的处理器内核要复杂得多&#xff0c;并且时…

【基于HTML5的网页设计及应用】——-正则表达式.

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…