1 条题解

  • 0
    @ 2026-10-25 17:16:48

    思路

    按位置有序选餐馆,间距必须大于k,处理多组和边界相等。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int main(){int t;cin>>t;while(t--){int n,k;cin>>n>>k;vector<int>a(n),p(n),d(n+1);for(int &x:a)cin>>x;for(int &x:p)cin>>x;for(int i=1;i<=n;i++){int j=i-1;while(j>0&&a[i-1]-a[j-1]<=k)j--;d[i]=max(d[i-1],d[j]+p[i-1]);}cout<<d[n]<<'\n';}}
    
    • 1

    信息

    ID
    1276
    时间
    1000ms
    内存
    64MiB
    难度
    普及
    标签
    递交数
    1
    已通过
    1
    上传者