2 条题解

  • 2
    @ 2024-10-5 16:11:59

    雷迪森安德镇特们,你们嚎! 别紫菜我😕 (蒟蒻恐惧)

    正经的来了

    思路: 首先,雪的教训,应该没人看见万万不可那边小删哪个,不行看这个 TNND老孙居然只给这么点分。555。。

    所以应该怎么做呢

    其实吧,这题允许模拟每种删法最后的结果,找最大的就行,肥肠的原始具体思路在代码里。

    看好了,劳资蒟蒻要上代码了😄

    #include<bits/stdc++.h>
    using namespace std;
    long long a[2000006],s[2000005],r=-1e18,l=1e18,n,k;//l、r必须开long long,不然爆掉
    int main(){
        freopen("delete.in","r",stdin);
        freopen("delete.out","w",stdout);
        cin>>n>>k;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            s[i]=s[i-1]+a[i];//通过前缀和可以O(1)模拟
        }
        for(int i=0;i<=k;i++){//挨个比较
            r=max(r,s[n-k+i]-s[i]);
            l=min(l,s[n-k+i]-s[i]);
        }
        cout<<maxx<<" "<<minn;
        return 0;
    }
    

    OK写完了。

    好消息,好消息

    这次的代码没有坑!所以点个 绿色的 赞再走吧,谢谢

信息

ID
785
时间
1000ms
内存
256MiB
难度
1
标签
递交数
116
已通过
22
上传者