首页 > 其他分享 >[ABC366C] Balls and Bag Query 题解

[ABC366C] Balls and Bag Query 题解

时间:2024-08-12 09:29:22浏览次数:15  
标签:Balls 题解 sum tot Bag op

[ABC366C] Balls and Bag Query 题解

题目传送门

AT原题传送门

首先是题面的翻译:

你有一个袋子,给予 \(Q\) 次操作,操作有三种

  • 1 \(x\) ,将一个 写有整数 \(x\) 的球放入袋中。
  • 2 \(x\) ,从袋中取出一个写有整数 \(x\) 的球。
  • 3 ,查询袋中球上的不同整数的数目。

整理了一下思路,发现此题并不难。

由于 \(x\) 的数据范围较小,可以使用计数排序的思想,使 \(a[x]\) 的值代表 \(x\) 在袋子中的个数。则这题的难度将大幅缩减,三操作简化为统计共有多少个非零的 \(a[i]\) 。

AC code:

#include <bits/stdc++.h>
#define seq(q, w, e) for (int q = w; q <= e; q++)
#define ll long long
using namespace std;
const int maxn = 2e6+10;
int a[maxn];
int n,op,sum,tot;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n;
    seq(i,1,n){
        cin>>op;             //操作
        if(op==1){
            cin>>sum;
            if(!a[sum]){     //如果a[sum]之前是0,现在非零,更新tot
                tot++;
            }
            a[sum]++;
        }
        if(op==2){
            cin>>sum;
            a[sum]--;
            if(!a[sum]){    //若更新后,a[i]归零,更新tot
                tot--;
            }
        }
        if(op==3){
            cout<<tot<<endl;
        }
    }
    return 0;
}

标签:Balls,题解,sum,tot,Bag,op
From: https://www.cnblogs.com/adsd45666/p/18354337

相关文章

  • [ABC366D] Cuboid Sum Query 题解
    [ABC366D]CuboidSumQuery题解原题传送门AT原题传送门题意翻译:给予一个\(N\timesN\timesN\)的三维矩阵,有\(Q\)次询问,对于每次询问,给与四个数,分别为\(L_1,R_1,L_2,R_2,L_3,R_3\)求在三维矩阵中\(a[L_1][L_2][L_3]\)到\(a[R_1][R_2][R_3]\)的区间和。三维前缀......
  • 题解:AT_abc366_c [ABC366C] Balls and Bag Query
    题意给你一个可重集,要求支持插入,删除,元素种类查询三种操作。分析直接乱搞,用一个桶记录每种数字的出现次数,再用一个变量\(sum\)记录元素种类数。插入的时候看看当前该元素出现次数是否为\(1\),删除的时候看看当前元素出现次数是否为\(0\),如果是的话让\(sum\)相应加减即可......
  • 题解 P6620【[省选联考 2020 A 卷] 组合数问题】
    直接摘抄OI-wiki了。第二类斯特林数第二类斯特林数(斯特林子集数)\(\begin{Bmatrix}n\\k\end{Bmatrix}\),也可记做\(S(n,k)\),表示将\(n\)个两两不同的元素,划分为\(k\)个互不区分的非空子集的方案数。递推式\[\begin{Bmatrix}n\\k\end{Bmatrix}=\begin{Bmatrix}n-1\\k-1......
  • l洛谷 P7870 兔已着陆——题解
    洛谷P7870题解传送锚点摸鱼环节「Wdoi-4」兔已着陆题目背景铃瑚和清兰是从月之都到达幻想乡的两只月兔。正因为降落到了幻想乡进行调查,因此她们通过开团子屋制作团子出售的方式,在幻想乡生活。为了应对越发繁荣的市场,她们向河城荷取购置了一台团子机器,可以高效地生产出五颜......
  • CF1264E Beautiful League 题解
    CF1264E你有一张竞赛图,给你竞赛图中\(m\)条边的方向,让你对于没有给定的边确定方向使得整张图的三元环个数最多\(n\leq50,m\leq\frac{(n-1)n}{2}\)费用流好题三元环是一个非常难考虑的东西,我们考虑求他的补集:不是三元环的个数最少我们发现不是三元环的情况是存......
  • CF1586E. Moment of Bloom 题解
    CF1586E胡桃是一个小恶作剧高手,她用这个图问题试图吓唬你!你有一个包含\(n\)个节点和\(m\)条边的连通无向图。你还需要处理\(q\)个查询。每个查询由两个节点\(a\)和\(b\)组成。最初,图中的所有边的权重都是\(0\)。对于每个查询,你必须选择一条从\(a\)开始并以\(b\)......
  • CF1515F Phoenix and Earthquake 题解
    CF1515F给定一张\(n\)个点\(m\)条边的无向连通图和正整数\(x\),点有非负权值\(a_i\)。如果一条边\((u,v)\)满足\(a_u+a_v\gex\),可以将\(u,v\)缩起来,新点的点权为\(a_u+a_v-x\)。判断这张图是否可以缩成一个点。如果是,还要输出每次缩的是哪条边。\(2\len\le3......
  • CF1654E Arithmetic Operations 题解
    CF1654E给定一个长度为\(n\)的序列\(a\)。问至少需要修改几个数才能使得\(a\)变为一个等差数列。\(n\leq10^5\),\(1\leqa_i\leq10^5\)。我们可以发现值域\(\leq10^5\)实属可疑,我们可以就这点进行分析考虑对于序列的公差\(d\),如果\(d\)太大的话经过若干......
  • CF1508C Complete the MST 题解
    CF1508C给定一个有\(n\)个节点的完全图,其中\(m\)条边有给定的边权,剩下的没有给定。你需要给所有没有给定边权的边赋上非负整数边权,使得所有边的边权的异或和等于\(0\)。我们认为这个图的“丑陋值”为这个图的最小生成树的边权之和,求所有可能的赋值方案中,“丑陋值”的最小......
  • ABC366 题解
    D-CuboidSumQuery三维前缀和。不过有一维范围小,可以暴力然后二位前缀和。E-ManhattanMultifocalEllipse横纵坐标的距离是独立的。扫描线扫横坐标,维护每个可行点的纵坐标的距离和,查询就是\(\lex\)的数的个数。可以通过桶做到线性。F-MaximumCompositionExchan......