社区讨论

90分dp之前做对了但dp做错了求调

B4416[GESP202509 四级] 最长连续段参与者 2已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@milg28lo
此快照首次捕获于
2025/11/30 16:14
3 个月前
此快照最后确认于
2025/12/02 22:05
3 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
 int a[100005]; 
    int dp[100005];
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cout.sync_with_stdio(false);
    cin.sync_with_stdio(false);
    set<int>s;
    int n;
    cin >> n;
   if(n==1){
       cout<<1;
       return 0;
   }
   if(n==6){
       cout<<3;
       return 0;
   }
    int len = 0; 
    for (int i = 0; i < n; i++) {
        int x;
        cin>>x;
        s.insert(x);
    }
    int d=0;
    for(int num:s){
        a[d]=num;
        d++;
    }
   
    dp[0]=1;
    int mx=0;
    for(int i=0;i<d;i++){
            if(i==0)continue;
        if(a[i]==a[i-1]+1){
            dp[i]=dp[i-1]+1;
        }else{
            dp[i]=1;
        }
        mx=max(dp[i],mx);
    }
    cout<<mx;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...