动态规划--二维费用背包--最大最小价值--hdu4968 Improving the GPA
来源:互联网 发布:java发送邮件 多邮箱 编辑:程序博客网 时间:2024/06/08 08:21
给定平均分和科目数,求可能的最低绩点和最高绩点。
容量为sum,41件物品(60-100分),完全背包。
费用为件数的1,和所需要的分数。
价值是绩点。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespacestd;
const int maxn =45;
const int maxV =100 *maxn;
double dp[maxV][maxn];
int c[maxn];//花费
double v[maxn];//价值
double f[maxV][maxn];
const int INF =maxV;
double gpai(int s)
{
if (s >=85) {
return4.0;
}
else if(s >= 80)
return3.5;
else if(s >= 75)
return3.0;
else if(s >= 70)
return2.5;
else if(s >= 60)
return2.0;
elsereturn0;
}
void prepro()
{
for(int i =1;i <=41;i ++)
{
c[i] = i -1;
v[i] =gpai(i +59);
}
}
int main()
{
prepro();
int T;
scanf("%d",&T);
int sum,n;
while(T --)
{
scanf("%d%d",&sum,&n);
sum *= n;
sum -= 60 * n;
memset(dp,0,sizeof(dp));
for (int i =0; i <= 41; i ++) {
for (int j =0; j <= sum; j++) {
f[j][i] =INF;
}
}
f[0][0] =0;
for (int i =1; i <=41; i ++) {//物品编号i代表i + 59分
for (int j =0; j <= sum; j ++) {//容量
for(int k =0;k <= n;k ++){
if(j -c[i] >=0 && k -1 >=0)
{
dp[j][k] =max(dp[j][k] ,dp[j - c[i]][k -1] +v[i]);
f[j][k] =min(f[j][k] ,f[j - c[i]][k -1] +v[i]);
}
}
}
}
printf("%.4lf %.4lf\n",f[sum][n] / n,dp[sum][n] / n);
}
return0;
}
- 动态规划--二维费用背包--最大最小价值--hdu4968 Improving the GPA
- HDU4968-Improving the GPA
- hdu4968-Improving the GPA
- 2014多校1009--hdu4968--Improving the GPA(平均成绩的最大最小平均学分)
- HDU4968:Improving the GPA(DP)
- Improving the GPA 贪心 HDU4968
- Improving the GPA(hdu4968)dfs
- 动态规划:二维费用的背包问题
- 动态规划:HDU3496-Watch The Movie(二维费用的背包问题)
- Improving the GPA
- Improving the GPA
- 《动态规划》hdoj acm 3.3.7 二维费用背包
- 动态规划-二维费用背包-宠物小精灵之收服
- 动态规划:HDU2159-FATE(二维费用的背包问题)
- 动态规划--装满背包的最小价值--hdu1114 Piggy-bank
- 动态规划实例(七):01背包问题最大价值
- HDOJ 4968 Improving the GPA
- HDU 4968 Improving the GPA
- 悲观锁和相比synchronized,ReentrantLock增加了一些高级功能,主要有以下3项:等待可 中断、可实现公平锁,以及锁可以绑定多个条件
- 阿里云服务器CentOS6.8安装Tomcat
- Hbase参数配置及含义
- openedx 修复课程grades文件下载bug
- iOS自动打开闪光灯
- 动态规划--二维费用背包--最大最小价值--hdu4968 Improving the GPA
- ListView setOnItemClickListener无效原因分析
- HANA 存储过程 基础篇
- HDU1005Number Sequence
- Activity did not call finish() prior to onResume() completing原因和解决办法
- Vue(2) : Vue for Gank.io
- 算法系列—— Find Peak Element
- 调用WebService接口的方法
- Apache HttpClient 资源释放、请求超时,导致线程池用光、内存不足