文章

24

粉丝

27

获赞

120

访问

6.4k

头像
钥匙 题解:简单模拟加前缀和
P1879 华东师范大学2020年机试
发布于2025年3月16日 17:18
阅读数 199

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

int main() {
    int n, k, door=1, j=1;
    cin >> n >> k;
    vector<int> v(n+1); //钥匙数组,下标j表示第i把钥匙,存的内容v[j]表示能开第几扇门
    vector<int> sum(n+2,0),sum2(n+2,0); //两个错误总数前缀和数组
    for (int i = 1; i <= n; i++)
        scanf("%d",&v[i]);

    while (door != n) {  //模拟第一次完成打开全部n扇门,第一次是特殊的,因为打开第一扇门的错误次数和初始钥匙序列有关
        if (j == n + 1)
            j = 1;
        if (v[j] != door) {
            j++;
            sum[door]++;
        } else{
            door++;
       &n...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发