首页 > 其他分享 >C-猪猪养成计划1(set)

C-猪猪养成计划1(set)

时间:2025-01-18 12:09:59浏览次数:1  
标签:lower set int bound cin 养成 猪猪

题目链接:https://ac.nowcoder.com/acm/contest/99785/C

题意:

给定一个数组,操作q次,分别为 标记 和 查询

思路:

将每一个数组值放入集合set中,消除掉已经遍历过的数组值,通过set二分来加速区间遍历

注意:

集合本身就存在二分函数lower_bound,通过.lower_bound()调用
set的erase操作分为两种,括号内为元素时返回消除的元素个数
括号内为迭代器时返回下一个有效迭代器

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
set<int>s;
int n,q;
const int maxn=1e5+5;
int ans[maxn];
int temp=1;
signed main()
{
	ios::sync_with_stdio(false),cin.tie(0);
	cin>>n>>q;
	for(int i=1;i<=n;i++)s.insert(i);
	int op;
	while(q--){
		cin>>op;
		if(op==1){
			int l,r;cin>>l>>r;
			auto it=s.lower_bound(l);
			while(it!=s.end()&&(*it)<=r)
			{
				ans[*it]=temp++;
				it=s.erase(it);
			}
		}else{
			int x;
			cin>>x;
			cout<<ans[x]<<endl;
		}
	}
	return 0;
}


标签:lower,set,int,bound,cin,养成,猪猪
From: https://www.cnblogs.com/benscode/p/18678326

相关文章

  • 请说明 Vue 3 中的 setup() 函数的作用及其用法
    深入理解Vue3中的setup()函数在Vue3中,性能和可维护性得到了显著提升,其中最引人注目的变化之一就是引入了CompositionAPI,而setup()函数则是这一API的核心部分。本文将深入探讨setup()函数的作用及其用法,帮助您理解如何在Vue3中更高效地组织和管理组件逻......
  • Top Down 2D Dojo Chip Set
     以下是对这款2D微型像素关卡芯片集的简洁介绍:这是一款基于8x8像素网格的2D微型像素关卡芯片集,采用经典的像素风格。它包含66个.png格式的芯片,涵盖多种墙壁和门的变体,非常适合用于快速搭建游戏原型的道场关卡。利用这些丰富的像素资源,可以轻松创建出风格独特的格斗......
  • Flutter跨插件访问assets资源
    1.现在常常以插件话和组件化开发移动端,我们在使用原生访问flutter的Assets资源时常常可以这样写valflutterAssetStream=assetManager.open("flutter_assets/assets/my_flutter_asset.png")但是如果是跨插件的话可能就不行了,比如一个主项目可能引入了好几个问呢-----》使用......
  • html的button中的reset有什么作用?
    在HTML中,<button>元素通常用于创建一个点击按钮。然而,<button>元素本身并不直接提供“reset”功能。通常,当我们谈到HTML中的“reset”按钮时,我们指的是<input>元素的一种类型,即type="reset"。<inputtype="reset">创建一个重置按钮。当这个按钮被点击时,它会将表单中的所有输......
  • Java 中的 ZoneOffset
    介绍在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东8区的时间等。  当这些时间在我们计算机中进行体现的时......
  • taskset命令
    taskset是Linux系统中的一个命令,用于设置或获取进程的CPU亲和性(CPUaffinity)。CPU亲和性决定了进程可以在哪些CPU核心上运行,通常用于优化性能,避免多个进程在同一核心上竞争资源。在Android系统中,由于它是基于Linux内核的,因此taskset命令也可以使用,但需要确保......
  • k8s~控制deamonset中pod的数量
    DaemonSet是Kubernetes中的一种控制器,用于确保集群中的每个节点(或特定标签选择器匹配的节点)运行一个Pod的副本。DaemonSet通常用于运行集群守护进程,如日志收集、监控代理、存储卷插件等。以下是如何控制DaemonSet中Pod数量的方法:使用节点选择器(NodeSelector)通过在D......
  • parallel programming in CUDA C(GPU并行程序实现数组求和 & Julia set)
    前言我们这节会学习到:Ⅰ.CUDA在实现并行性时采用的一种重要方式Ⅱ.用CUDAC编写第一段并行代码一、Summingvector#defineN10voidadd(int*a,int*b,int*c){inttid=0;//这是第0个CPU,因此索引从0开始while(tid<N){c[tid]=a[tid]+b[tid];......
  • C:\Users\Administrator\Local Settings\temp 是 Windows 操作系统中的一个临时文
    C:\Users\Administrator\LocalSettings\temp是Windows操作系统中的一个临时文件夹,通常用于存储操作系统和应用程序在运行时生成的临时数据。具体来说,temp文件夹用于存放临时文件,例如:安装文件:一些程序在安装过程中会将临时文件放在这里。缓存文件:一些程序可能会将数据缓存......
  • 【JAVA 基础 第(18)课】HashSet 使用方法详解
    HashSet:Set接口的实现类,存放无序的,不可重复的元素判断是否为重复的对象比较hashCode()方法的返回值,如果不同,判定为不同的对象,如果相同,执行第二步判断equals()方法的返回值,如果为true,则判为相同的对象,如果为false,则为不同的对象publicclassHashSetTest{ publicstatic......