萌新第一天学c艹20分求条(dp)
查看原帖
萌新第一天学c艹20分求条(dp)
660871
2011Andy楼主2023/7/30 09:12
#include <bits/stdc++.h>
#define int long long
using namespace std;
int x , y , maxn = -1;
int n , m , t;
int f[5005][5005];
int a[5005] , p[5005] , q[5005]; 
signed main(){
	cin >> x >> y >> n >> m;
	for(int i = 1 ; i <= m ; i++) cin >> a[i];
	for(int i = 1 ; i <= n ; i++) cin >> p[i] >> q[i];
	cin >> t;
	int xy = y / x;
	for(int i = 1 ; i <= m ; i++) a[i] *= xy;
	for(int i = 1 ; i <= m ; i++){
		for(int j = 0 ; j <= t ; j++){
			f[i][j] = f[i - 1][j];
			if(j >= p[a[i]]){
				f[i][j] = max(f[i][j] , f[i - 1][j - p[a[i]]] + q[i]);
			}
		}
	}
	cout << f[m][t];
	return 0;
}
2023/7/30 09:12
加载中...