尝试了一下暴力的做法,发现MLE了,求解释
  • 板块P4933 大师
  • 楼主nob_lz
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/1 21:26
  • 上次更新2024/12/2 13:48:50
查看原帖
尝试了一下暴力的做法,发现MLE了,求解释
1416590
nob_lz楼主2024/12/1 21:26
#include<bits/stdc++.h>
using namespace std;
using i64=long long;
using u64=unsigned long long;

const int N=1e3+5;
const int MOD=998244353;

vector<int> v;
int sub;
int a[N];
u64 ans,n;
int f[N];

//求两个塔时的情况
int per(int x){
    return x*(x-1)/2;
}

void solve(){
    //一个塔和两个塔的情况
    ans=n+per(n);
    for(int i=1;i<=n;++i){
       for(int j=i+1;j<=n;++j){
            sub=a[j]-a[i];
            int tem=a[j];
            v.push_back(tem);
            for(int k=j+1;k<=n;++k){
                int si=v.size();
                for(int p=0;p<si;++p){
                    if(a[k]-v[p] == sub){
                        ans++;
                        ans= ans % MOD;
                        v.push_back(a[k]);
                    }
                }
            }
           v.clear();
       }
    }
    cout<<ans<<'\n';
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;++i) cin>>a[i];
    solve();
    return 0;
}

想知道内存哪里出了问题orz

2024/12/1 21:26
加载中...