HDU 4022 Bombing set和map的结合

2024-04-22 07:58
文章标签 结合 set map hdu bombing 4022

本文主要是介绍HDU 4022 Bombing set和map的结合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给你一些物体的坐标,给你炸弹,炸弹可以炸一行或一列(输入规定),问你每一颗炸弹可以炸多少个物体(一个物体被炸一次就没了)。


想法:想法很简单,直接模拟,怎么模拟是一个问题,如果用for那是会超时的。

使用map+set(multiset:里面的元素可以重复,而set不可以),map<a,b>(其中a,b为数据类型)这样就形成了一对一的对应关系,但是这个题目是一行对这一行里面的所有的物体,显然是一对多,那么久可以用一个set来代替第二个类型。每次爆炸之后,删除这一行的所有物体就好了,同时列的一些物体也要删除,因为是两个方向的爆炸,所以这样是必要的。


#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#include<set>
using namespace std;
map<int,multiset<int> >mx,my;
multiset<int>::iterator iter;
int n,m;
void Input()
{mx.clear();my.clear();for(int i=1;i<=n;i++){int a,b;scanf("%d%d",&a,&b);mx[a].insert(b);my[b].insert(a);}
}
void treatment()
{int ans;for(int i=1;i<=m;i++){int a,b;scanf("%d%d",&a,&b);if(!a){ans=mx[b].size();//这一行炸弹的个数 for(iter=mx[b].begin();iter!=mx[b].end();iter++) {//找出这一行的炸弹所在的列 my[*iter].erase(b);//这一列的炸弹在b行消失(爆炸) }mx[b].clear();//这一行被炸完了 }else {ans=my[b].size();for(iter=my[b].begin();iter!=my[b].end();iter++){mx[*iter].erase(b);}my[b].clear();}printf("%d\n",ans);}printf("\n");
}
int main()
{while(~scanf("%d%d",&n,&m),m+n){Input();treatment();}return 0;
} 

这篇关于HDU 4022 Bombing set和map的结合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925219

相关文章

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.