HNU-青蛙与蚊子

【问题描述】

       有 n 只青蛙位于坐标轴 OX 上,对于每只青蛙,有两个已知值 xi、ti,表示第 i 只青蛙在坐标的位置(各不相同)以及它的舌头的长度。同样有 m 只蚊子一只接一只的落到坐标轴上,对于每只蚊子,有两个已知值, pj 表示第 j 只蚊子所在的位置,bj 为第 j 只蚊子的重量。青蛙和蚊子表示为坐标上的点。

       如果蚊子和青蛙在同一位置或者在右边,青蛙可以吃掉蚊子,它们之间的距离不超过青蛙舌头的长度。

       如果有几只青蛙都能在某一时刻吃到一只蚊子,最左边的青蛙就会吃掉它(最小的 xi)。吃完蚊子后,青蛙的舌头将增加蚊子重量的长度,在之后,青蛙又能够吃其他蚊子(在舌头长度增加之后)。 

       在所有蚊子落下以及青蛙吃掉所有可能的蚊子之后,对于每个青蛙,输出两个值,即吃蚊子的数量以及舌头的长度。

       每只蚊子只有在青蛙吃完之前所有可能的蚊子之后才会落到坐标上,蚊子的值是按其落到坐标轴上的顺序给出的。 

【输入形式】

       输入的第一行为两个整数(1 ≤ n,m ≤ 2*105),表示青蛙和蚊子的数量。

       接下来的 n 行,每行两个整数 xi、ti(0 ≤ xi、ti ≤ 109),表示第 i 只青蛙所在的位置以及它的舌头的初始长度,输入保证所有的 xi 互不相同。

       接下来的 m 行,每行两个整数 pj、bj(0 ≤ pj、bj ≤ 109),表示第 j 只蚊子落下的位置以及它的重量。

【输出形式】

       输出为 n 行,第 i 行包含另两个整数值 ci、li,表示被第 i 只青蛙吃掉的蚊子数量以及最终的青蛙的舌头长度。
【样例输入1】

4 6
10 2
15 0
6 1
0 1
110 10
1 1
6 0
15 10
14 100
12 2

【样例输出1】

3 114
1 10
1 1
1 2

【样例输入2】

1 2
10 2
20 2
12 1

【样例输出2】

1 3

#include<iostream>
#include<algorithm>
using namespace std;
struct frog {int pos;int len;int eat = 0;int index;
};
struct mosquito {int pos;int weight;bool live = 1;
};
bool cmp1(frog a, frog b) {												//按位置排列return a.pos < b.pos;
}
bool cmp2(frog a, frog b) {												//最后按顺序输出return a.index < b.index;
}
int main() {int n, m;cin >> n >> m;frog frogs[n];mosquito mosquitoes[m];for (int i = 0; i < n; i++) {cin >> frogs[i].pos >> frogs[i].len;frogs[i].index = i;}for (int i = 0; i < m; i++) {cin >> mosquitoes[i].pos >> mosquitoes[i].weight;}sort(frogs,frogs+n,cmp1);for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (mosquitoes[i].live && frogs[j].pos + frogs[j].len >= mosquitoes[i].pos&&frogs[j].pos<=mosquitoes[i].pos) {frogs[j].eat++;frogs[j].len += mosquitoes[i].weight;mosquitoes[i].live = 0;i=-1;break;}}}sort(frogs,frogs+n,cmp2);for(int i=0;i<n;i++){cout<<frogs[i].eat<<" "<<frogs[i].len<<endl;}return 1;
}

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

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

相关文章

RHCE学习笔记(RHEL8) - RH294

Chapter Ⅰ 介绍Ansible ansible ansible是一款开源自动化平台 ansible围绕一种无代理架构构建&#xff0c;在控制节点上安装ansible&#xff0c;且客户端不需要任何特殊的代理软件&#xff1b;ansible使用SSH等标准协议连接受管主机&#xff0c;并在受管主机上运行代码或命令来…

在cmd下查看mysql表的结构信息

我提前已经在mysql数据库中创建了一个表&#xff1a; 在cmd下&#xff0c;登录mysql以后&#xff0c;使用命令describe 表名、或者explain 表名可以查看表结构信息。但在实践中&#xff0c;查看表结构&#xff0c;多用describe命令&#xff0c;而查看执行计划用explain。 例…

p标签在div中居中

新建一个html文件&#xff0c;命名为test.html&#xff0c;用于讲解如何在css中让div中的p标签居中。 在test.html文件内&#xff0c;在div内&#xff0c;使用p标签创建一行文字&#xff0c;用于测试。 在test.html文件内&#xff0c;设置div标签的class属性为mydiv。 在…

2312skia,12画布包与路径包

画布包 Skia现在提供了,在Web上轻松部署图形API的WebAssembly构建,即CanvasKit. CanvasKit提供了测试新的Canvas和SVG平台API的地基,从而在Web平台上,实现快节奏开发.还可用作要求如Skia的Lottie动画支持等边角特征的自定义Web应用的部署机制. 特征 1,按允许直接绘画到HTML画…

MySQL - 多表查询

文章目录 1.聚合查询2.分组查找3.联合查询内连接外连接自连接子查询合并查询 SQL查询各关键字的执行先后顺序 总结 本文开始 1.聚合查询 聚合查询&#xff0c;使用的是聚合函数&#xff1a;count()&#xff0c;sum()&#xff0c;avg()&#xff0c;max()&#xff0c;min coun…

Hdoop学习笔记(HDP)-Part.05 Yum源配置

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

mysql常用命令行代码

连接到 MySQL 服务器&#xff1a; mysql -u your_username -p替换 your_username 为你的 MySQL 用户名。系统会提示你输入密码。 退出 MySQL 命令行&#xff1a; EXIT;或者按 Ctrl D。 显示所有数据库&#xff1a; SHOW DATABASES;选择数据库&#xff1a; USE your_database…

计算机网络扫盲(1)——因特网

一、概述 因特网是一个世界范围的计算机网络&#xff0c;即它是一个互联了遍及全世界数十亿计算设备的网络。大家对此应该并不陌生&#xff0c;我们身边有着不计其数的计算机设备被接入了因特网&#xff0c;如今计算机网络这个术语似乎已经有点过时了&#xff0c;用因特网的术语…

CRM系统是怎样帮助销售流程自动化的?

销售业绩是衡量企业经营的重要指标&#xff0c;也是销售人员一直要达成的目标。销售业绩能否提高取决于销售人员的能力、客户服务水平&#xff0c;还需要借助有效的工具。CRM系统就是这样的一款软件。企业如何提高销售业绩&#xff1f;不妨试试CRM销售流程自动化。 CRM如何实现…

什么是新一代智能拓客系统?

新一代智能拓客系统是一种采用先进的人工智能技术&#xff0c;为企业提供高效拓展客户的工具。它基于大数据分析&#xff0c;可以快速识别潜在客户&#xff0c;并针对他们的需求进行个性化的营销活动。 新一代智能拓客系统主要特点有&#xff1a; 自动化&#xff1a;新一代智…

【C语言:数据在内存中的存储】

文章目录 1.整数在内存中的存储1.1整数在内存中的存储1.2整型提升 2.大小端字节序2.1什么是大小端2.2为什么有大小端之分 3.整数在内存中的存储相关题目题目一题目二题目三题目四题目五题目六题目七 4.浮点数在内存中的存储4.1浮点数存的过程4.2浮点数取得过程 在这之前呢&…

openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志

文章目录 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志137.1 检查操作系统日志137.2 检查openGauss运行日志137.3 清理运行日志 openGauss学习笔记-137 openGauss 数据库运维-例行维护-检查和清理日志 日志是检查系统运行及故障定位的关键手段。建议按…

Windows下安全认证机制

NTLM&#xff08;NT LAN Manager&#xff09; NTLM协议是在Microsoft环境中使用的一种身份验证协议&#xff0c;它允许用户向服务器证明自己是谁&#xff08;挑战&#xff08;Chalenge&#xff09;/响应&#xff08;Response&#xff09;认证机制&#xff09;&#xff0c;以便…

TA-Lib学习研究笔记(八)——Momentum Indicators 中

TA-Lib学习研究笔记&#xff08;八&#xff09;——Momentum Indicators 中 Momentum Indicators 动量指标&#xff0c;是最重要的股票分析指标&#xff0c;能够通过数据量化分析价格、成交量&#xff0c;预测股票走势和强度&#xff0c;大部分指标都在股票软件中提供。 11. …

对el-select封装成组件使用

效果与直接使用el-select一样&#xff0c;多处用el-select显得代码冗余就进行了封装 效果图&#xff1a; el-select封装&#xff1a; <template><div class"my-select"><el-selectv-model"person.modelValue":placeholder"placehold…

Linux中的文件IO

文章目录 C语言文件操作系统文件I/O接口介绍 open函数返回值文件描述符fd0 & 1 & 2文件描述符的分配规则 重定向使用 dup2 系统调用 FILE理解文件系统理解硬链接软链接acm 动态库和静态库静态库与动态库生成静态库生成动态库&#xff1a; C语言文件操作 先来段代码回顾…

DBeaver 社区版(免费版)下载、安装、解决驱动更新出错问题

DBeaver 社区版&#xff08;免费版&#xff09; DBeaver有简洁版&#xff0c;企业版&#xff0c;旗舰版&#xff0c;社区版&#xff08;免费版&#xff09;。除了社区版&#xff0c;其他几个版本都是需要付费的&#xff0c;当然相对来说&#xff0c;功能也要更完善些&#xff…

pandas.get_dummies函数:把离散信息转换成onehot矩阵

pandas.get_dummies函数用来把可以分类信息转换成0和1矩阵。 函数参数 def get_dummies(data,prefix=None,prefix_sep="_",dummy_na: bool = False,columns=None,sparse: bool

进程间通信 消息队列 函数用法介绍

Linux的消息队列是一种在进程间传递消息的数据结构。它允许一个进程将一条消息放入队列&#xff0c;而其他进程可以从队列中取出并处理消息。消息队列在实现进程间通信(IPC)方面非常有用。 IPC对象 IPC(InterProcess Communication) 对象是活动在内核级别的一种进程间通信的工…

Fiddler抓包工具之fiddler设置过滤

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤&#xff1a; 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …