• 2024-09-21vector--C++
    文章目录一、vector1、vector的介绍及使用1.1、vector的介绍1.2、vector的使用1.3、vector的定义1.4、vectoriterator的使用1.5、vector空间增长问题1.6、vector增删查改1.7、vector迭代器失效问题(重点)1.8、指定位置元素的删除操作--erase2、注意:Linux下,g++编译器
  • 2024-09-14abc370D Cross Explosion
    一开始并查集写的,ga掉。set应用一道非常好的题目。```#include<bits/stdc++.h>#include<set>#definesiiset<int>::iteratorusingnamespacestd;inth,w,q,ans;set<int>s1[400007],s2[400007];voiddel(intx,inty){//printf("%d%d\n",x,
  • 2024-09-08ABC370 Review
    ABC370ReviewA模拟题,过B模拟题,过C很明显的贪心思路是把需要更改的字母分为两类:改大和改小。首先我们要明确的是要让输出的串尽量拥有小的字典序,且字典序比较的第一关键字是位置,第二是长度所以对于改小的部分,改的位置越靠前我们就放在越前面操作;对于改大的部分,改的位置
  • 2024-09-07AtCoder Beginner Contest 370
    A-RaiseBothHands(abc370A)题目大意给出Snuke举的左右手情况,如果只举左手,输出Yes,如果只举右手,输出No,否则输出Invalid。解题思路逐一判断即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::sync_with
  • 2024-08-27C++笔记9•list•
    容器之list1.list的介绍(1).list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。(2).list的底层是双向循环链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。(3).优
  • 2024-08-17set与multiset
    STL魔法之set与multisetset与multiset之间区别是set之中不会有重复的元素,而multiset之中可以有重复元素set和multiset的使用方法基本是一样的可以看这篇博客这里总结一下首先.begin().end().lower_bound().upper_bound()返回的都是迭代器其中.end()返回的
  • 2024-08-16[AGC064C] Erase and Divide Game
    link感觉题解说的都很不清晰,这里只谈个人理解。考虑操作的本质是什么,两人从低到高确定二进制下的每一位填的数,并且场上只保留对应后缀的数字,当场上没有数字时当前操作者输。设\(f[i,S]\)表示确定了前\(i\)位,填的数为\(S\),接下来先手是否能赢,那么有\(f[i,S]=\neg(f[i
  • 2024-08-05【C++第11章】Vector
    【C++第11章】Vectorvector介绍
  • 2024-07-28CF626G Raffles 题解
    Description有\(n\)个奖池,第\(i\)个奖池的奖金是\(p_i\),已经有\(l_i\)张彩票押在上面。现在你有\(t\)张彩票,你需要将你的彩票分配到这些奖池中,并且保证你在每个奖池中押的彩票数不能超过该奖池原有的彩票数。若你在第\(i\)个奖池中押了\(t_i\)张彩票,则你中奖的概
  • 2024-07-27ABC262F 题解
    题面把“移动\(a_n\)至数列头”称为rotate,删除一项称为erase。因为要求字典序最小,所以可以逐位贪心。考虑一个数\(a_i\)怎么变成第一个数:使用\(n-i\)次rotate/erase,再rotate一次。删除或移动原来的\(a_{i+1}\sima_n\),再移动原来的\(a_i\)(逐步移动到数列尾,再ro
  • 2024-07-23STL常用内容与概念
    前言本文为一年多前个人笔记,记录一些STL常用的内容与概念。阅读时请使用目录。容器分为关联式,顺序式,容器适配器pairpair<type,type>p(value1,value2)pair<type,type>p=make_pair(value1,value2)p.first,p.second(multiset)mapkey升序,multi可重,unordered不可
  • 2024-07-21清华训练营预选赛 赛后总结
    汉明码的精髓在于,既然你无法分辨更改检验位的情况,就把检验位放到冲突的位置,消掉那一位位运算的性质:a+b=(a|b+a&b)\(a\oplusb\oplus0\)+\(a\oplusb\oplus(111…11)\)=111…11其实D题才是最简单的题目,比赛的整体难度低于省赛,明年还参加的话开场或许可以考虑和队友分工增进
  • 2024-07-10G. The Great Equalizer
    原题链接题解每次操作都会是排序后的元素差值减一,所以答案为初始序列最大值加上最大差值用STL的multiset维护差值和序列值code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[200005];voidsolve(){intn;cin>>n;multiset<ll>s
  • 2024-06-11D. In Love
    题解首先,我们来学会如何判断在一系列线段中是否存在不相交线段。我们选取所有线段中最大的左边界l_max和最小的右边界r_min,我们可以清楚的知晓当l_max>r_min的时候存在不相交线段(贪心的思想),否则不存在。code #include<bits/stdc++.h>usingnamespacestd;typedeflonglo
  • 2024-05-26vector容器的用法
    vector容器的用法文章目录vector容器的用法1.vector是向量的意思,他是动态顺序表2.封装数组3.capacity和size的用法4.assign的用法5.resize的用法6.front和back的用法7.clear和erase用法8.vector中逆序输出的用法9.insert的用法1.vector是向量的意思,他是动态顺序表2
  • 2024-04-25POI2012SQU-Squarks
    POI#Year2012#数学考虑如果将\(x_i\)和\(sum_i\)都排序,那么\(sum_1=x_1+x_2\),\(sum_2=x_1+x_3\)考虑枚举一个\(sum_i=x_2+x_3\),此时就可以确定\(x_1,x_2,x_3\)假设当前确定到\(i\),将已经确定的\(x_i\)组成的\(sum\)去掉,剩下的最小的\(sum\)一定为\(x_1+x_{
  • 2024-04-20天梯赛赛前总结
    某些函数后面有带小括号的注解,小括号中各参数的顺序就是传入的参数的顺序。stlqueue声明:queuename;(其他容器如无特别标注则声明方式与此相同)函数:front,back,empty,size,push,pop,swap(c++11)比较运算符:==,<=,>=,<,>,!=:按照字典序比较两个queue(c++20)priority_queue
  • 2024-04-16C++ list erase
    原文:https://www.cnblogs.com/yelongsan/p/4050404.htmlSTL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。      在使用list、set或m
  • 2024-04-12[题解][2022江西省程序设计竞赛] Graphic Game
    题目描述Cirno被推荐了一个游戏,她决定今天和大妖精一起玩。最初,有一个包含2×n个顶点和m条边的图。在每一轮中,Cirno和大妖精都必须选择一个不同的顶点。所选顶点的度数必须相同。然后,Cirno和大妖精将从图中移除它们。现在Cirno想知道是否有办法从给定的图中移除所有顶点。如果
  • 2024-04-04Least Prefix Sum
    题目链接Hello2023C.LeastPrefixSum思路:仔细看式子,发现可以对它进行推理(mmm是定值,1≤
  • 2024-03-19vector的Erase相关
    vector<int>Vect; Vect.insert(Vect.begin()+2,50); for(autoit=Vect.begin();it!=Vect.end();++it) { if(*it==50) { Vect.erase(it); } }为什么以上的代码会报错,而下面的一段代码不会报错? vector<int>Vect;Vect.insert(Vect.begin()+2,50);
  • 2024-03-19remove vs. erase 【TODO】
    erase:说明:Removesfromthelistcontainereitherasingleelement(position)orarangeofelements([first,last)).Thiseffectivelyreducesthecontainersizebythenumberofelementsremoved,whicharedestroyed.以iterator为单元,对元素进行清除。返回值:Anit
  • 2024-03-12杭电OJ 2054 A==B?
    A==B?题目只要你判断数字A是否等于B,傻子都知道肯定不是int数据类型可以存下的,A可能有1000位,要用字符串类型存储,比较的时候注意\(0001\)、\(001\)、\(1\)都是一样的,即前导零不算好吧,题目只说了number,没说是整数呀分析:比较前,先去掉前面多余的0,再去小数点后面多余的0(首先要保
  • 2024-03-10C++中不同容器下迭代器失效的情况
    C++中不同容器下迭代器失效的情况迭代器失效分三种情况考虑,也是分三种数据结构考虑,分别为数组型,链表型,树型数据结构。数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素挪位置,所以,插入点和删除掉之后的迭代器全部失效,也就
  • 2024-02-24Erase First or Second Letter
    先来看一下官方解答首先对任意一个操作序列,如果存在某次操作二排在相邻的操作一前面,那我们把这两次操作换成连续的两次操作一,得到的字符串显然不变所以我们可以先一直进行操作一,然后在进行操作二,我们把一种操作序列记为\((i,j)\),表示进行了\(i\)次操作一之后进行了\(j\)次操作二