B的dp要怎么写?

#include<bits/stdc++.h>
using namespace std;
const double PI=acos(-1);
#define int long long
#define double long double
#define endl '\n'
#define sqrt sqrtl
#define rep(i,a,b) for(int i=a;i<=b;i++)

int gcd (int a ,int b){
	return b ? gcd ( b , a % b ) :a;
 }

const int N=205;

double f[N][N];
void solve(){
	int n,m;cin>>n>>m;
	rep(i,1,n){	
		rep(j,0,m){
			f[i][j]=0;
		}
	}
	rep(i,1,n){
		double a,b,c;cin>>a>>b>>c;
		rep(j,0,m){
			f[i][j]=f[i-1][j];
			if(j-(int)b>=0)
			f[i][j]=max(f[i][j],f[i-1][(int)(j-b)]+max(0.3*a,a-0.004*a*(j)-50*c));
		}
			
	}

	cout<<f[n][m]<<endl;
}
signed main(){
//	ios::sync_with_stdio(false);
//    cin.tie(0),cout.tie(0);
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
	int t=1;
	cin>>t;
	while(t--){
	     solve();
	}
	return 0;
}

全部评论

相关推荐

拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务