1 条题解

  • 0
    @ 2025-8-24 21:16:09

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Lycd0719
    Remeber me when I'm gone

    搬运于2025-08-24 21:16:08,当前版本为作者最后更新于2024-03-24 11:51:21,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    纯模拟

    思路

    先读入数组,接下来每进来一个人,就从前往后枚举,如果遇见比他高的人,就把他们交换,并将操作次数加一。

    数组枚举完毕后,输出操作次数即可

    代码

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int a[1000000];
    int b[1000000];
    signed main() {
    	int n;
    	cin >> n;
    	int i, j, k;
    	for (i = 0; i < n; i++) {
    		cin >> a[i];
    	}
    	int m;
    	cin >> m;
    	for (i = 1; i <= m; i++) {
    		cin >> k;
    		b[i] = a[k];
    		int ans = 0;
    		for (j = 1;j<=i; j++) {
    			if (b[j] > b[i]) {
    				swap(b[i], b[j]);
    				ans++;
    			}
    		}
    		cout << ans << endl;
    	}
    }
    
    • 1

    信息

    ID
    9949
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者