蓝桥杯VIP算法训练-轨道炮-看完秒懂的(c++map)

2023-11-04

题目描述

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

输入

输入第一行包含一个整数 N。

以下 N 行每行包含 3 个整数 Xi, Yi, Vi,以及一个大写字符 Di。

输出

输出一个整数代表答案。

样例输入复制

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

样例输出复制

3

提示

对于所有评测用例,1 ≤ N ≤ 1000, 1000000 ≤ Xi, Yi ≤ 1000000,0 ≤ Vi ≤1000000。

看题找算法:

典型map题目

思路:

1.首先横向射和纵向射是分立的问题,可以分别解决然后取最大值。

2.单个方向上问题就是:给定初始位置和速度,求一个时间和位置使得在这个时间和位置上重合的点最多。

3.因为n只有1000,两两求出相遇时间以及位置,取答案最大的时间和位置即可。


注意事项:

注意细节

#include

using namespace std; 

int X[1010],Y[1010],vx[1010],vy[1010];

int mx=0;

int n;

void f(int X[],int vx[])

{

    for(int i=1;i<n;i++)

    {

        unordered_map

        int cnt=1;

        for(int j=i+1;j<=n;j++)

        {

            if(vx[i]==vx[j])

            {

                if(X[i]==X[j])

                    cnt++;

                mx=max(cnt,mx);                

                continue;

            }

            int dx=X[i]-X[j],dv=vx[j]-vx[i];

            int t=dx/dv;

            if(dx%dv||t<0)   continue;

            m[t]++;

            mx=max(mx,m[t]+cnt);

        }

    }

}

int main()

{

    cin>>n;

    for(int i=1;i<=n;i++)

    {

        int v;

        char d;

        cin>>X[i]>>Y[i]>>v>>d;

        if(d=='R')

            vx[i]=v;

        if(d=='L')

            vx[i]=-v;

        if(d=='U')

            vy[i]=v;

        if(d=='D')

            vy[i]=-v;

    }

    f(X,vx);

    f(Y,vy);

    cout<<mx;

    return 0;

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯VIP算法训练-轨道炮-看完秒懂的(c++map) 的相关文章

随机推荐

  • 表单全选与取消全选

    分析 1 全选和取消全选 让下方所有复选框的checked属性 选中状态 跟随全选按钮 2 下方的所有复选框选中全选按钮才选中 其中一个不选中全选按钮都不选中 每次点击下面的某个复选框都要循环检查下方复选框是否都被选中 flag保存全选按钮
  • Java程序员应该具备的技能

    Java程序员的三个阶段 第一阶段 三年 我认为三年对于程序员来说是第一个门槛 这个阶段将会淘汰掉一批不适合写代码的人 这一阶段 我们走出校园 迈入社会 成为一名程序员 正式从书本上的内容迈向真正的企业级开发 我们知道如何团队协作 如何使用
  • linux 远程拷贝命令

    一 scp命令 远程拷贝文件 Linux scp命令用于linux之间进行复制文件 scp 是secure copy 的缩写 scp 是基于ssh登录来进行安全拷贝 补充知识 ssh进行登陆 ssh 用户名 IP地址 scp优势 当服务器的
  • request和requestScope的区别

    1 request对象通常用来接收从客户端通过表单提交过来的数据 然后在servlet或者action中用request getParameter 的方法获取获取参数内容 2 而requestScope通常是在servlet和action中
  • redis详解(一)—— 概述

    首先 分布式缓存框架 可以 看成是nosql的一种 1 什么是redis redis 是一个基于内存的高性能key value数据库 2 Reids的特点 Redis本质上是一个Key Value类型的内存数据库 很像memcached 整
  • 【前端面试

    1 数据类型 1 基本数据类型 Undefined Null Boolean Number String 还有在 ES6 中新增的 Symbol 类型 2 引用数据类型 对象 数组 函数 日期和正则等等 2 判断类型的方法 基本类型判断 t
  • 最新前端面试题整理

    前端技术 常见浏览器的内核分别是什么 IE浏览器 Trident 内核 Firefox浏览器 Gecko内核 Safari浏览器 Webkit内核 Opera浏览器 最初是Presto内核 后来是Webkit 现在是Blink内核 Chro
  • TypeScript中数组类型的定义

    TypeScript中数组类型的定义 现在我们可以定义一个最简单的数组类型 比如就是数字类型 那么就可以这么写 const numberArr 1 2 3 这时候你把鼠标放在numberArr上面可以看出 这个数组的类型就是 number
  • 【Linux】进程间通信

    文章目录 1 进程间通信基础 2 管道 2 1匿名管道 2 1 1匿名管道的原理 2 2匿名管道的特点 2 3匿名管道函数 2 3 1用例 2 3 2实现ps ajx grep bash指令 2 4匿名管道的特点 2 5管道的大小 2 6管
  • 项目管理计算-- PV、EV、AC、BAC、EAC、ETC等计算公式含义

    一 总浮动时间TF和自由浮动时间FF的差别 项目进度网络图 其中每个小方块里面的若干数字是啥意思呢 最早开始时间 ES 最早结束时间 EF 最迟开始时间 LS 最迟结束时间 LF TF Total Flow 总浮动时间 FF Free Fl
  • 史上最全的 Hexo 博客搭建配置完全指南

    欢迎到我的博客查看最新文章 https blog clouder im 本篇博客基于 Centos 7 x root 用户 最近利用 Hexo Github Pages 搭建了一个博客 总体来说比较满意 中间也踩了不少坑 于是将我的配置过程
  • LevelDB使用指南

    这篇文章是levelDB官方文档的译文 原文地址 LevelDB library documentation 这篇文章主要讲leveldb接口使用和注意事项 leveldb是一个持久型的key value数据库 key value可以是任意
  • Node.js 搭配 Socket.io 实现与客户端实时通信

    最近准备用react搭建node搭建一个大数据可视化平台 并且服务端利用到socket io 客户端利用到socket io client 这里总结下基本使用方式 安装 npm i express socket io socket io c
  • SQLi LABS Less-34

    第三十四关注入点为 单引号字符串型 注入类型为 报错注入 此关卡通过 代码WAF 将单引号 转义成 我们使用 编译 绕过WAF 先上结果 and updatexml 1 concat 0x7e substr select group con
  • Delphi多层开发方案比较

    以下转载自 http blog sina com cn s blog 53decb4101009a5m html type v5 one label rela nextarticle http blog csdn net SmallHand
  • 华为机试HJ60 查找组成一个偶数最接近的两个素数

    HJ60 查找组成一个偶数最接近的两个素数 Python 题目 解题思路 代码 结果 题目 解题思路 1 多组输入 需要循环 2 先创建一个判断是否素数的函数以备调用 素数判断 从1以后开始 如果到该数一半的位置有可以整除的数 则不是素数
  • 【pygame杂记】字体

    这一节放在这里挺突兀的 但是因为今天开周会 晚回来了 而且吃晚饭还吃撑了所以就简单写一下吧 举个栗子进行简述 我们知道在python中所有的东西都可以抽象成对象 在这里 我们创建了一个字体的对象 创建字体对象 font pygame fon
  • android Handler详细使用方法实例

    开发环境为android4 1 Handler使用例1 这个例子是最简单的介绍handler使用的 是将handler绑定到它所建立的线程中 本次实验完成的功能是 单击Start按钮 程序会开始启动线程 并且线程程序完成后延时1s会继续启动
  • DDL语言的使用

    第1关 创建数据库 编程要求 在右侧窗口编写 SQL 并创建一个名为 teachingdb 的教学数据库 连接数据库的用户名为 root 密码为 123123 请在此编写代码 操作完毕之后点击评测 Begin create database
  • 蓝桥杯VIP算法训练-轨道炮-看完秒懂的(c++map)

    题目描述 小明在玩一款战争游戏 地图上一共有 N 个敌方单位 可以看作 2D 平面上的点 其中第 i 个单位在 0 时刻的位置是 Xi Yi 方向是 Di 上下左右之一 用 U D L R 表示 速度是 Vi 小明的武器是轨道炮 只能使用一