关于此题解法
  • 板块学术版
  • 楼主xiaoshumiao
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/20 12:49
  • 上次更新2024/1/20 13:16:21
查看原帖
关于此题解法
1008513
xiaoshumiao楼主2024/1/20 12:49

link

蒟蒻太菜,只会 O(nlog⁡n)\mathcal O(n \log n) 解法。

想问一下下面这个 O(n)\mathcal O(n) 代码的原理是什么。

#include<bits/stdc++.h>
using namespace std;
int n,f[100009],a,b,mx;
long long ans;
int main(){
    scanf("%d",&n);
    memset(f,0,sizeof(f));
    for(int i=1;i<=n;i++){
        scanf("%d%d",&a,&b);
        f[a]=max(f[a],2*b-2*a-1);
        mx=max(b,mx);
    }
    for(int i=1;i<=mx;i++){
        f[i]=max(f[i-1]-2,f[i]);
        ans+=f[i];
    }
    printf("%lld\n",ans);
    return 0;
}
2024/1/20 12:49
加载中...