• 2024-06-06CF1913C Game with Multiset
    题目Inthisproblem,youareinitiallygivenanemptymultiset.Youhavetoprocesstwotypesofqueries:ADD\(x\)—addanelementequalto\(2^{x}\)tothemultiset;GET\(w\)—saywhetheritispossibletotakethesumofsomesubsetofthecur
  • 2024-05-11set 容器详解 附大根堆题解
    声明本文中题解部分内容大部分转载自@sonnety的这篇博客中,本文为为方便复习而写的结论类文章,读者可自行跳转至原文处阅读。PART1set什么是set——来源cppreference简言之,它就是一种存进去就可以自动按升序排列的特殊容器,通常的set还具有自动去重的功能。定义方
  • 2024-05-03multiset用法总结
    multiset是库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。简单应用:通过一个程序来看如何使用multiset:#include<string>#include<iostream>#include<set>usin
  • 2024-04-24算法小笔记0424
    1在C++中,multiset是一种容器适配器,它允许存储多个具有相同键的元素。它是set的一个变体,与set不同的是,multiset允许重复的元素。multiset中的元素按照特定的排序标准自动排序,这个排序标准是在容器创建时指定的。下面是一个使用multiset的简单示例:#include<iostream>
  • 2024-04-23multiset容器
    和set容器不同的是,multiset容器可以存储多个值相同的元素。multiset容器类模板的定义如下所示:template<classT,//存储元素的类型classCompare=less<T>,//指定容器内部的排序规则classAlloc=allocator<T
  • 2024-04-22容器使用之multiset
    容器使用之multiset可以理解为小型关联数据库底层结构:红黑树示例代码:#pragma#ifndef__MULTISET__#define__MMULTISE__​#include<set>#include<iostream>​usingnamespacestd;​namespaceMyTestSet{voidtest_set(long&value){multiset<string>c;/
  • 2024-04-16multiset搬运
    原作者:https://www.cnblogs.com/wenzhixin/p/8509909.html#include<set>#include<string>#include<iostream>usingnamespacestd;structmyComp{booloperator()(conststring&a,conststring&b){if(a.compare(b)==1)
  • 2024-04-10CF1913C Game with Multiset 题解
    翻译初始时你有一个空序列,共\(m\)次操作,每次操作读入两个数\(t_i\),\(v_i\),分为以下两种操作:当\(t_i=1\)时,在空序列中加入\(2^{v_i}\)这一元素。(此时\(0\lev_i\le29\))当\(t_i=2\)时,询问是否存在:取当前序列的某些元素,使它们的的和等于\(v_i\)(此时\(0\lev_i\l
  • 2024-04-09C++ 标准模板库 STL(1)set 与 multiset
    一、简介    set与multiset容器能够快速查找键,键是存储在一维容器中的值,二者的区别在于前者不能够存储重复的键值,后者能够存储重复键值。    set与multiset内部结构类似于二叉树,并且被插入到set与multiset容器中的元素会默认进行排序,从而提高查找速度。这意
  • 2024-04-04Least Prefix Sum
    题目链接Hello2023C.LeastPrefixSum思路:仔细看式子,发现可以对它进行推理(mmm是定值,1≤
  • 2024-04-02ABC221H Count Multiset
    传送门构造序列型DP。经典的就是这么一种构造序列的方式:用两种操作。增加一个\(0\)。将当前序列中所有数加\(1\)。由此可以构造出任意一种自然数不降序列。回到本题。即要求构造一个长度\(k\)和为\(n\)且没有一种数出现超过\(m\)次的不降序列,求方案数。考虑
  • 2024-03-29set/ multiset 容器
    set/multiset容器1.1set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素1.2set构造和赋值功能描述:创建set容器以及赋值构
  • 2024-03-15set/multiset容器
    set/multiset容器头文件:#include<set>1.set基本概念所有元素都会在插入时自动被排序set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素2.set构造和赋值构造:set<T>st;//默
  • 2024-03-07ABC221H Count Multiset
    [ABC221H]CountMultiset以下内容多引用自[1]对应的文章分拆数表示将正整数\(N\)拆成若干正整数和的方案数\(P_N\),可以形式化的表示成以下方程的解的个数\[x_1+x_2+...+x_m=N,1\lex_1\lex_2\le...\lex_m\]其中我们通常将每个正整数\(x_i\)称
  • 2024-03-06从CF1935C看带反悔的贪心和multiset
    Problem-C-Codeforces.思路首先很显然对\(b\)数组排序能最小化\(b\)的花费。难点在\(a\)的选择,因为已经对\(b\)排序,不可能再兼顾\(a\)的优劣,所以\(a\)需要类似枚举的技术,这是一个类似搜索最优子集的问题,可以用\(DP\),但是更可以贪心带反悔的贪心这类问题就
  • 2024-03-04p4632-solution
    P4632Solutionlink对时间扫描线,就变成支持单点加入删除一个颜色点,求所有颜色距离某个点的距离最大值。考虑二分答案,现在就是要检验\([x-mid,x+mid]\)内是否有\(1\simk\)颜色的点各至少一个。数颜色可以考虑维护\(pre_i\)表示上一个与该点同色的位置。然后区间\([l,r]
  • 2024-02-27Codeforces Round 905 (Div
    CodeforcesRound905(Div.3)A.Morning此题将其看为光标一直移动,其中移动次数就是坐标之差的绝对值,0看做10,由于其显示也需一次操作,所以加上四。#include<bits/stdc++.h>usingnamespacestd;intmain(){ intt; cin>>t; while(t--) { intarr[4],count=0;
  • 2024-02-22[ARC104D] Multiset Mean
    考虑计算和为\(x\)的方案时,把所有的数减去\(x\),dp出和等于\(0\)的。减去后数被分为三段,小于\(0\),等于\(0\)和大于\(0\)。其中等于\(0\)的直接乘上即可,对于正负,上下都是对称的,直接dp出\(f_{i,j}\)表示用了前\(i\)个数和为\(j\)的方案书,使用前缀和优化,最后
  • 2024-02-21set/multiset
    set/multiset容器Set的特性是。所有元素都会根据元素的键值自动被排序。Set的元素不像map那样可以同时拥有实值和键值,set的元素即是键值又是实值。Set不允许两个元素有相同的键值。我们可以通过set的迭代器改变set元素的值吗?不行,因为set元素值就是其键值,关系到set元素的排序规
  • 2024-02-08ABC 312
    前三题氵D给定一个由(,?,)组成的字符串。每个?可以设定为任意括号。求有几种设定方法使得整个是合法括号序列。套路,dpE给定\(n\)个两两不相交的长方体,对每个长方体,求有多少个长方体与其有公共面。有一个可以大幅度优化代码麻烦程度的小技巧:因为坐标范围很小,我们直接把
  • 2023-12-19C. Game with Multiset
    原题链接反思:要把各种可能的情况都判断一遍再提交!不要急着提交简介仓库里有若干个二次方数,请问是否能取出若干数使得刚好等于给定数?情况讨论情况1.仓库里只有一个4,但是我要求2,求不得情况2.仓库里有三个1,我要求3,能求大概思路从\(i\in[log2(v),0]\)遍历(从大到小),如果对于i,仓
  • 2023-12-03Codeforces Round 908 (Div. 2)
    总结T1题目大意:A,B两人玩游戏,游戏规则如下:整场游戏有多轮,每轮游戏先胜\(X\)局的人获胜,每场游戏先胜\(Y\)局的人获胜。你在场边观看了比赛,但是你忘记了\(x\)和\(y\),只记得总共比了\(1\len\le20\)局,和每局获胜的人,请判断谁获胜了。如果A获胜,输出A,如果B获胜,输
  • 2023-11-02[ARC104D] Multiset Mean 题解
    题意给定\(N,K\)和\(M\)。对于每个大小在\([1,N]\)中的\(x\),求每个元素大小在\([1,N]\)中,平均数为\(x\)且相同元素不超过\(K\)个的可重集的数量,对\(M\)取模。\(1\leN,K\le100\),\(M\)为质数。题解发现对于\(x\),若存在一个合法的集合\(S\),那么有\[\sum\li
  • 2023-10-29multiset 用法
    头文件#include<set>代码#include<set>#include<iostream>usingnamespacestd;intmain(){ multiset<int>ms; ms.insert(1); ms.insert(5); ms.insert(5); ms.insert(5); ms.insert(2); ms.insert(1); for(autoiter=ms.be
  • 2023-10-24Codeforces 1862G 题解
    传送门题解因为有这个操作:将序列\(a\)加上\(\{n,n-1,\cdots,1\}\),考虑差分。那么显然每次操作会将差分数组中的每个元素减去\(1\),如果差分数组中有\(0\),就会把\(0\)删除。所以可以发现差分数组中剩下的一定是操作前的最大值。由于操作后最大值还是最大值,最小值仍