提交时间:2026-03-07 17:17:49
运行 ID: 431314
#include<bits/stdc++.h> using namespace std; vector<int> s; vector<long long> c; long long a[100086]; int n,m; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; s.resize(n); for(int i=0;i<n;i++){ cin>>s[i]; } c.resize(n+1); for(int i=1;i<=m;i++){ cin>>c[i]; } memset(a,0x3f,sizeof(a)); a[0]=0; sort(s.begin(),s.end()); for(int i=1;i<=n;i++) { int sum=s[i-1]; for(int k=1;k<=m;k++){ int cnt=max(1,sum-k+1); for(int j=0;j<i;j++){ if(s[j]>=cnt&&s[j]<=cnt+k-1){ a[i]=min(a[i],a[j]+c[k]); } } } } cout<<a[n]<<"\n"; return 0; }