首页 > 代码库 > 繁华模拟赛 最优得分
繁华模拟赛 最优得分
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#define ll long longusing namespace std;const int maxn = 1005,maxt = 3005,maxint = 987654321;struct query{ ll a; ll b; ll c; friend bool operator <(query x,query y){ return y.b * x.c < x.b * y.c; }};int n,t,dp[maxt];query q[maxn];void input(){ cin>>n>>t; for(int i = 1;i <= n;i++){ scanf("%d%d%d",&q[i].a,&q[i].b,&q[i].c); } sort(q+1,q+1+n); memset(dp,-1,sizeof(dp)); dp[0] = 0;}void work(){ for(int i = 1;i <= n;i++){ for(int j = t;j >= q[i].c;j--){ if(dp[j-q[i].c] != -1 && dp[j] < dp[j-q[i].c] + q[i].a - q[i].b * j) dp[j] = dp[j-q[i].c] + q[i].a - q[i].b * j; } } int ans = 0; for(int i = 0;i <= t;i++) ans = max(ans,dp[i]); cout<<ans<<endl;}int main(){ //freopen("score.in","r",stdin); //freopen("score.out","w",stdout); int T; cin>>T; while(T--){ input(); work(); } return 0;}#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<stack>#include<cstdlib>#include<string>#include<bitset>#include<ctime>#define INF 1000000000#define N 3005#define fi first#define se second#define debug(x) cerr<<#x<<"="<<x<<endl#define MP(x,y) make_pair(x,y)using namespace std;typedef long long LL;typedef pair<int,int> pii;struct Data{ int a,b,c;}p[N];bool operator < (Data a,Data b){ return a.c*b.b<b.c*a.b;}inline void upd(int &x,int y){ if(x<y) x=y;}int dp[N];int main(){ int T,n,t,j,fn,ans=0,i; //freopen("score.in","r",stdin); //freopen("score.out","w",stdout); //int t1=clock(); cin>>T; while(T--) { ans=0; cin>>n>>t; for(i=1;i<=n;i++) scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].c); sort(p+1,p+1+n); memset(dp,-1,sizeof(dp)); dp[0]=0; for(i=1;i<=n;i++) { //debug(p[i].a); fn=p[i].a-p[i].b*t; //debug(fn); for(j=t;j>=p[i].c;j--,fn+=p[i].b) if(dp[j-p[i].c]!=-1) upd(dp[j],dp[j-p[i].c]+fn); } for(i=0;i<=t;i++) upd(ans,dp[i]); cout<<ans<<endl; } //debug(clock()-t1); return 0;}// davidlee1999WTK 2015/// srO myk Orz//ios::sync_with_stdio(false);//#pragma comment(linker, "/STACK:102400000,102400000")//#define O2 __attribute__((optimize("-O2")))
繁华模拟赛 最优得分
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。