60分,#2,5 WA ,代码求调 qwq
查看原帖
60分,#2,5 WA ,代码求调 qwq
774204
A_chicken_boy楼主2023/10/3 14:44
#include <bits/stdc++.h>
using namespace std ;
struct A{
	int a , b ,c ;
	string name ;
}mc[200] ;
int v[200] , p[200] ;//v : the number of boxs ; p : the price of these things ;
int m , n ;
int dp[200][200] ;
int main ( ){
	cin >> m >> n ;
	int k = 0 ;
	for ( int i = 1 ; i <= n ; ++i ){
		cin >> mc[++k].a >> mc[k].b >> mc[k].c >> mc[k].name ;
		for ( int j = 1 ; j < k ; ++j ){
			if ( mc[j].name == mc[k].name ){
				mc[j].a += mc[k].a ;
				--k ;
				break ;
			}
		}
	}
	int maxn_v = 0 ;
	for ( int i = 1 ; i <= k ; ++i ){
		p[i] = mc[i].b ;
		v[i] = ceil ( (double) mc[i].a /(double) mc[i].c ) ;
		if ( v[i] > maxn_v ){
			maxn_v = v[i] ;
		}
	}
	for ( int i = 1 ; i <= k ; ++i ){
		for ( int j = 1 ; j <= maxn_v ; ++j ){
			if ( j <= v[i] ){
				dp[i][j] = max ( dp[i-1][j], dp[i-1][j-1] + p[i] * j * mc[i].c ) ;
				//cout << i << " " << j << ' ' <<  dp[i][j] << endl ;
			}else{
				dp[i][j] = dp[i-1][j] ;
			}
		}
	}
	cout << dp[k][21-m] ;
	return 0 ;
}
2023/10/3 14:44
加载中...