第三届山东ACM Pick apples
2016-05-04 15:16
225 查看
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct node{
long long S;
long long P;
double q;
}a[3];
bool cmp(node a,node b){
return a.q>b.q;
}
int main(){
int T;
long long V;
long long sum;
long long dp[6000];
long long tmp;
int i,j;
int ca=0;
scanf("%d",&T);
while(T--){
scanf("%lld%lld",&a[0].S,&a[0].P);
a[0].q=(double)(a[0].P)/a[0].S;
//cout<<a[0].q<<endl;
scanf("%lld%lld",&a[1].S,&a[1].P);
a[1].q=(double)(a[1].P)/a[1].S;
//cout<<a[1].q<<endl;
scanf("%lld%lld",&a[2].S,&a[2].P);
a[2].q=(double)(a[2].P)/a[2].S;
//cout<<a[2].q<<endl;
scanf("%lld",&V);
sort(a,a+3,cmp);
sum=V%a[0].S;
for(i=1;;++i){
if(a[0].S*i>=5000){
break;
}
}
sum=sum+a[0].S*i;
memset(dp,0,sizeof(dp));
for(i=0;i<3;++i){
for(j=a[i].S;j<=sum;++j){
tmp=dp[j-a[i].S]+a[i].P;
if(tmp>dp[j]){
dp[j]=tmp;
}
}
}
for(i=sum;;--i){
if(dp[i]>0){
break;
}
}
printf("Case %d: %lld\n",++ca,((V-sum)/a[0].S)*a[0].P+dp[i]);
}
return 0;
}
/**************************************
Problem id : SDUT OJ J
User name : 666777
Result : Accepted
Take Memory : 556K
Take Time : 0MS
Submit Time : 2016-04-30 17:44:39
**************************************/
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct node{
long long S;
long long P;
double q;
}a[3];
bool cmp(node a,node b){
return a.q>b.q;
}
int main(){
int T;
long long V;
long long sum;
long long dp[6000];
long long tmp;
int i,j;
int ca=0;
scanf("%d",&T);
while(T--){
scanf("%lld%lld",&a[0].S,&a[0].P);
a[0].q=(double)(a[0].P)/a[0].S;
//cout<<a[0].q<<endl;
scanf("%lld%lld",&a[1].S,&a[1].P);
a[1].q=(double)(a[1].P)/a[1].S;
//cout<<a[1].q<<endl;
scanf("%lld%lld",&a[2].S,&a[2].P);
a[2].q=(double)(a[2].P)/a[2].S;
//cout<<a[2].q<<endl;
scanf("%lld",&V);
sort(a,a+3,cmp);
sum=V%a[0].S;
for(i=1;;++i){
if(a[0].S*i>=5000){
break;
}
}
sum=sum+a[0].S*i;
memset(dp,0,sizeof(dp));
for(i=0;i<3;++i){
for(j=a[i].S;j<=sum;++j){
tmp=dp[j-a[i].S]+a[i].P;
if(tmp>dp[j]){
dp[j]=tmp;
}
}
}
for(i=sum;;--i){
if(dp[i]>0){
break;
}
}
printf("Case %d: %lld\n",++ca,((V-sum)/a[0].S)*a[0].P+dp[i]);
}
return 0;
}
/**************************************
Problem id : SDUT OJ J
User name : 666777
Result : Accepted
Take Memory : 556K
Take Time : 0MS
Submit Time : 2016-04-30 17:44:39
**************************************/
相关文章推荐
- iOS之下拉框实现
- 微信、支付宝支付集成--Ping++支付接入步骤-iOS版
- iOS热更新,JSPatch初探
- html与Android——webView
- Android的AlertDialog详解
- Android res文件夹下资源定义及使用
- IOS9新特性之Contacts联系人
- Android 初识 MVC、MVP框架
- Android月历控件(DatePicker)和时间控件(TimePicker)的使用
- 《Motion Design for iOS》(十)
- 【Java技术点】java实现map和object互转的三种方法
- Unity常用常找(二)
- Android获取设备信息
- Unity常用常找(二)
- 超好:web app变革之rem
- Android WebView
- cocos code ide快捷键
- Android中Parcelable接口用法
- iOS项目中常用第三方库超全总结
- Unity GUI