【set用法】xodef 1041 C

2024-02-07 20:38
文章标签 用法 set 1041 xodef

本文主要是介绍【set用法】xodef 1041 C,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

怎么A掉感觉都烂掉了,我们先来学习一下set用法吧.....

来看这个人代码:感谢帮助

第一种:迭代器

 set<int>s;  set<int>::iterator it;   set<int>::iterator it;

这个非常神奇,可以返回一个位置,拿去和end()  begin()比较,也可以直接*it 就去拿到了数据.


#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
typedef long long LL;
const int N = 2e5 + 10;
int n, m, d, a[N];
set<int>b;
set<int>::iterator it;
int main()
{map<int, int> mp;scanf("%d%d%d", &n, &m, &d);for(int i=1;i<=n;i++) {scanf("%d", &a[i]); b.insert(a[i]);}//最开始只做了一件事,把他插入到set里了int tot = 1, now = 1, ans = 0, sz = n;while(sz) {//sz是你用了几个鸭,肯定要把所有的数据都用上才可以...it = b.lower_bound(now);//在b里面,now这个数据,插入到哪里//it是一个位置信息,而且是迭代器,而且是迭代器,而且是迭代器if(it == b.end()) {now = 1; tot ++; continue;}//如果跑到了最后,就直接从1再次开始..mp[*it] = tot; ans = tot;now = *it + d + 1;if(now > m) now = 1, tot ++;//有两种情况越界=-----一种是>m, 一种是到底儿了//我感觉now=1也可以是0,只是让迭代器回到最开始的状态吧.用法啊...真难得b.erase(*it); sz --;}//也根本没排序,因为都扔到set里面排序了,只是记录了它到底是第几个而已//唔,大概*it很神奇吧,加了*可以直接从位置,螺旋进化   一直访问就拿到了那个数据.printf("%d\n", ans);for(int i=1;i<=n;i++) {if(i-1) printf(" ");printf("%d", mp[a[i]]);}printf("\n");return 0;
}

来补课:抽特王补课系列

来解决格式错乱:chrome开启开发者工具,在Event Listeners中找到copy中的article,点击remove即可。

但是还是有问题....  直接看那个"复制"按钮就可以了

第二种: 直接使用*begin  *end()

(1)*s.begin()直接就是数据

(2)auto p=a.lower_bound(x); 

这个p本质上也是迭代器压, 返回的是一个位置,但是并不是"第x个"   我估计返回的是地址....

所以不能直接就cout<<lower_bound(x) 

auto自动识别类型,然后就碰到了那个lowe...

(3)s.erase(p)和s.earse(*p)看起来是一样的,一个是抹除位置,一个是抹除数据吧

(4)总结:

s.begin()不能直接等于,要用迭代器来存放 , (数据类型)

如果加了* 就直接变成数据,反正不是"我是第几个"啦,而是一个地址(一般是这样吧)

s.lower_bound亦然,  加*又到了数据了,反正只是个相对位置,不能拿到那个具体位置

想要返回开头,可以使得迭代器-----(直接lb插入1就行或者0是不是很安全....反正不能是返回0的位置啦)

 

这篇关于【set用法】xodef 1041 C的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的