单调队列优化WA求救
查看原帖
单调队列优化WA求救
1286552
zhoukangming楼主2025/1/18 15:44
#include<bits/stdc++.h>
using namespace std;
int n,m,a[114514],b[114514],c[114514],dp[114514];
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i]>>c[i];
	}for(int i=1;i<=n;i++){
		for(int w=0;w<b[i];w++){
			deque<int> d;
			for(int j=w;j<=m;j+=b[i]){
				while(d.size() && dp[d.back()]+a[i]*((j-d.back())/b[i])<dp[j]){
					d.pop_back();
				}d.push_back(j);
				while(d.size() && (j-d.front())/b[i]>c[i]){
					d.pop_front();
				}dp[j]=dp[d.front()]+a[i]*((j-d.front())/b[i]);
			}
		}
	}cout<<dp[m];
	return 0;
}
2025/1/18 15:44
加载中...