专栏文章

题解:P13510 [KOI 2025 #1] 远方的卡片

P13510题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mioni247
此快照首次捕获于
2025/12/02 22:05
3 个月前
此快照最后确认于
2025/12/02 22:05
3 个月前
查看原文
一道水题
首先,读入n和a[i]
CPP
cin >> n;
for(int i = 1;i <= 2*n;i++){
    cin >> a[i];
}
接着,从数字1到n开始枚举,定义l为第一个数字 k ,r为第二个数字k,在从1到2*n中,找到l,r。挑选l和r中间的数字的数量(r-l-1),maxn统计最大值,最后输出便可以了
CPP
for(int i = 1;i <= n;i++){
    bool f = 0;
    int l = 0,r = 0;
    for(int j = 1;j <= 2*n;j++){
        if(a[j] == i && f == 0){
            l = j;
            f = 1;
        }else if(a[j] == i && f){
            r = j;
            break;
        }
    }
    maxn = max(maxn,r-l-1);
}

code

CPP
#include<bits/stdc++.h>
using namespace std;
int n,maxn = -1; 
int a[4004];
int main(){
    cin >> n;
    for(int i = 1;i <= 2*n;i++){
        cin >> a[i];
    }
    for(int i = 1;i <= n;i++){
        bool f = 0;
        int l = 0,r = 0;
        for(int j = 1;j <= 2*n;j++){
            if(a[j] == i && f == 0){
                l = j;
                f = 1;
            }else if(a[j] == i && f){
                r = j;
                break;
            }
        }
        maxn = max(maxn,r-l-1);
    }
    cout << maxn;
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...