您的位置:首页 > 其它

HYS与七夕节大作战 vijos

2017-12-10 10:55 190 查看


背景

一年一度的七夕节到了,HYS又开始烦恼他的约会安排,作为一名后辈,你被他选中来帮助他。


描述

由于HYS有很多名女友,所以他不可能在一天之内和所有的女友都进行约会,于是你决定帮他选定一些女友进行约会。每一个女友的约会都不相同,和一名女友约会,会需要T的时间,而每一个女友的重要度不尽相同。时间是宝贵的,一天只有24hrs,所以你决定帮他安排好一个计划,可以让他尽量和最重要的女友"们"约会。但是,当你收到他的女友名单的时候,你发现女友的数量实在太多了,不得不借助计算机来帮你安排。当然,HYS在同一时间不可能和两个女友约会,但是约会的先后顺序没有影响。


格式


输入格式

第一行有一个数N,代表HYS的女友数量。

之后第2行到N+1行每行有两个数,T和V。分别代表约会所需要的时间(表示为占一天的百分比)和女友的重要度。


输出格式

第一行输出一个数,表示在你的安排下,与HYS约会的女友的重要度之和(要求精确到小数点后5位)。


样例1


样例输入1

8
37.50000 5
12.50000 5
6.75000 3
6.75000 3
12.50000 4
25.00000 5
6.75000 3
8.00000 4
Copy


样例输出1

27
Copy


限制

1≤N≤1000;
1≤V≤5;
0≤T≤100;

其中T的精度保证和输出精度一致。

题目最后限制错误

Solution:

#include<iostream>
#include<stdio.h>
using namespace std;
int f[10000];
int s[1010][2];
int main(){
int n;
cin>>n;
int i,j,b;
double a;
for (i=1; i<=n; i++) {
scanf("%lf%d",&a,&b);
int c=a*100;
s[i][0]=c;
s[i][1]=b;
}
for (i=1; i<=n; i++) {
for (j=10000; j>=s[i][0];j--) {
if (f[j]<f[j-s[i][0]]+s[i][1]){
f[j]=f[j-s[i][0]]+s[i][1];
}
}
}
cout<<f[10000]<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vijos 背包问题