首页 > 其他分享 >LG_B3951 [GESP样题 五级] 小杨的队列 题解

LG_B3951 [GESP样题 五级] 小杨的队列 题解

时间:2024-04-06 09:12:12浏览次数:54  
标签:B3951 队列 LG int 题解 cin long ++

比较简单的一道逆序对的题,甚至不用 \(\Omicron(n \log n)\) 的归并,只需要 \(\Omicron(n^2)\) 的优化冒泡。

就是一个在队列里每次 push 一个元素,然后查找逆序对的问题。值得一提的是,这道题身高不重复,所以才能优化冒泡拿满分,不然的话就得老实用归并了。

直接看代码吧。

#include <bits/stdc++.h>
#define int long long
using namespace std;

int a[2005], f[2005], k = -1;
map <int, int> v;

signed main(){
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i ++) cin >> a[i];
    int m;
    cin >> m;
    
    while (m --){
        int x, c = 0;
        cin >> x;
        
        f[++ k] = a[x];
        for (int i = 0; i <= k; i ++){
            for (int j = i + 1; j <= k; j ++){
                if (f[i] > f[j]) c ++;
            }
        }
        
        if (++ v[a[x]] > 1) k --;
        sort(f, f + k + 1);
        cout << c << endl;
    }
}

完结撒花。

标签:B3951,队列,LG,int,题解,cin,long,++
From: https://www.cnblogs.com/mayile/p/18117148/lg_b_3951

相关文章

  • AT_xmascon21_b Bad Mood 题解
    这是一道比较简单的结论题。不难发现,最小得分为\((n+1)(m+1)-nm\),化简得到:\[\begin{aligned}&(n+1)(m+1)-nm\\=&nm+n+m+1-nm\\=&n+m+1\end{aligned}\]继续不难发现,最大得分应该是最小得分加上\(\lfloor\frac{(n-2)(m-2)+nm}{4}\rfloor\)的结果,化简,得到(忽略向下取整......
  • LG_P10183 [YDOI R1] Running 题解
    首先感谢@jjh20100730dalao提供的思路。这是一道一道简单的数学题。首先不难发现,起始时间为\(0\),那么到达每一个超市时的时间必须要能被\(v\)整除,注意到题目要求最大,所以是要求\(a_i\)的最大公因数。注意到到达每个超市的时间必须要是偶数,这样的话不满足\(v\)是最大......
  • LG_P8728 [蓝桥杯 2020 国 B] 填空问题 题解
    蓝桥杯2020国BP8728题解A题直接写Python暴力一下。Output:563故答案为\(563\)。B题直接写Python暴力一下(欸怎么又来了)。总之就是写一个DFS,枚举每一个向外走,步数\(x\)满足\(x\le2020\)的点就好啦!Output:20312088故答案为\(20312088\)。C题直......
  • CF1827E Bus Routes 题解
    这是一道拥有*3400标签的题目。首先很显然可以将题意中的条件转化为任意两个度数为一的节点都能通过不超过两条路径互相到达。接下来随便取一个度数大于一的节点作为根,如果\(n=2\)直接判掉即可。考虑两个叶子节点能互相到达一定需要满足什么条件,发现两个点通过一条路径能到......
  • [题解]ABC346 补题C~E
    想起上次的ABC346没打,刚才虚拟参赛打了A~D,E题思路有,但是实现方式没选好导致WA了,没能在赛时做出来。写下题解记录一下~C-Σ用求和公式先把\(1\simk\)的和求出来:\(\frac{k(k+1)}{2}\),然后对于\(A\)数组中的元素依次减去就行(注意相同元素不能减\(2\)次)点击查看代码#include<b......
  • P9902 『PG2』模拟最大流 题解
    首先最大流等于最小割,然后就能很容易地想到一个状压dp做法:记\(f_{i,s}\)表示使得前\(i\)个点中,最后\(k\)个点与点\(1\)的联通情况为\(s\)的最小代价。然后考虑下一个点是否联通直接转移即可,然后就做完了。时间复杂度\(\mathcalO(n2^k)\)。参考代码:#include<bits/s......
  • hnswlib hnswalg.h 源码解析
    代码来自:https://github.com/nmslib/hnswlib阅读顺序:内存池结构和管理https://zhuanlan.zhihu.com/p/642713540addPoint(不带level参数)addPoint(带level参数)addPoint用到的其他函数searchKNN和他用到的函数#pragmaonce#include"visited_list_pool.h"#include"......
  • P9058 [Ynoi2004] rpmtdq 题解
    Description给定一棵有边权的无根树,需要回答一些询问。定义\(\texttt{dist(i,j)}\)代表树上点\(i\)和点\(j\)之间的距离。对于每一组询问,会给出\(l,r\),你需要输出\(\min(\texttt{dist(i,j)})\)其中\(l\leqi<j\leqr\)。\(n\leq2\times10^5\),\(q\leq10^6\),\(1\l......
  • 二叉树计算【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-二叉树计算给出一个二叉树如下图所示:6/79\/-26请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。20(7-2+9+6)/\-26\/......
  • 学生重新排队【华为OD机试JAVA&Python&C++&JS题解】
    一.题目-学生重新排队n个学生排成一排,学生编号分别是1到n,n为3的整倍数。老师随机抽签决定将所有学生分成m个3人的小组,n=3*m为了便于同组学生交流,老师决定将小组成员安排到一起,也就是同组成员彼此相连,同组任意两个成员输入描述:之间无其它组的成员。因此老师决定调整队伍,......