I love exam

题意:有n门考试,剩余t天,m次辅导课,每次辅导课对应一门考试,每次辅导课要花费x天可以为这门课增加y分,问在挂科门数不超过p的情况下能得到的最高分

思路:我们这里令A[i][j],表示第i门课花费j天最多获得多少分,得到之后,我们其实就知道了对于每一个门课,花费1天、2天、3天…t天最多能得多少分;B[i][j][k],表示前i门课花费j天还能挂k科最多能得多少分,所以我们在求B时,前两重循环还是前i门花费j天(代表01背包中的第一重物品价值与重量),后两重循环代表花费不超过该重量并且最多还能挂多少科的最高分。

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
#define IO ios::sync_with_stdio(false)
#define bug cout << "-----\n"
typedef long long ll;
int Mod = 1000000007;
const int N = 55;
const int M = 1000;
struct node {int score,day;
};
map<string,int> mp;
vector<node> vt[N];
string s[N],srr;
int l[N][M],r[N][M][5];
int main() {IO;int T,i,j,n,m,t,p,k,g;int score,day;cin >> T;while(T--) {memset(l,0,sizeof l);memset(r,-0x3f,sizeof r);//利于判断后面的-1 cin >> n;for(i=1;i<=n;i++) {cin >> s[i];mp[s[i]] = i;vt[i].clear();}cin >> m;while(m--) {cin >> srr >> score >> day;vt[mp[srr]].push_back({score,day});}int ans = 0;cin >> t >> p;for(i=1;i<=n;i++) {int q = inf;for(j=0;j<vt[i].size();j++) {node x = vt[i][j];for(k=t;k>=x.day;k--) {l[i][k] = max(l[i][k],l[i][k-x.day]+x.score);l[i][k] = min(100,l[i][k]);if(l[i][k] >= 60)q = min(q,k);}}}r[0][0][0] = 0;//初始化000 for(i=1;i<=n;i++) {for(j=t;j>=0;j--) {//前两重循环类似01背包的第一重循环for(k=t;k>=j;k--) {//类似01背包第二重循环for(g=0;g<=p;g++) {if(l[i][j]>=60)r[i][k][g] = max(r[i][k][g],r[i-1][k-j][g]+l[i][j]);else if(g>0) r[i][k][g] = max(r[i][k][g],r[i-1][k-j][g-1]+l[i][j]);}}}}int res = -1;for(i=0;i<=p;i++)res = max(res,r[n][t][i]);cout << res << endl;}system("pause");return 0;
}

HDU-6968-I love exam相关推荐

  1. I love exam HDU - 6968

    I love exam HDU - 6968 题意: 有n个考试科目,现在有m套复习资料,每套复习资料需要花费wi天使用,用完提升ci的分数,现在还有t天复习时间,挂科数目不能超过p,问所有达到的最大 ...

  2. hdu 6656 Final Exam

    题意:给出n个题目,题目总分m分,每道题至少需要对应的分数+1的时间复习才可以通过,需要通过k个题目,试问如何安排复习时间才是最快的? 思路: 思考学生复习的最坏的情况是老师出的(n-k+1)个题目他 ...

  3. hdu 1086 A - You can Solve a Geometry Problem too (线段的规范相交非规范相交)

    A - You can Solve a Geometry Problem too Time Limit:1000MS     Memory Limit:32768KB     64bit IO For ...

  4. 2018 HDU多校第四场赛后补题

    2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...

  5. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  7. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  8. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

  9. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

  10. hdu 1272 小希的迷宫

    Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...

最新文章

  1. 学习HTML-Beautify.js
  2. Redis的常用命令——set的常用命令
  3. LeetCode14 最长公共前缀
  4. 【java】动态绑定机制
  5. View的缩放操作--CGAffineTransformMakeScale:
  6. python和django中的常见错误
  7. 如何查看有没有django及版本
  8. CISCO 路由器(1)
  9. 【干货】前端开发者最常用的六款IDE
  10. 华为服务器维修期,拆看一台1U华为服务器RH1288 V2-8S
  11. Java千百问_01基本概念(015)_阻塞、非阻塞有什么区别
  12. 真正的爱情是日久生情
  13. PTA求100以内的素数
  14. eclipse官方下载32位和64位的具体步骤
  15. 为什么要分库分表?一个业务场景来理顺它!
  16. SpringBoot整合Graylog做日志收集
  17. opencv-python DIS光流
  18. iOS 浏览相册功能实现 —— HERO博客
  19. 小米android手机密码忘了怎么解锁,小米手机锁屏密码忘了该如何解决?教你多种办法...
  20. 2022年度电商“三巨头”阿里,京东,拼多多的“暗战”

热门文章

  1. 对于回归方程和线性回归方程的个人理解
  2. 毕业了,发布一下我的求职简历(.net程序员)
  3. 即便考分很好也不予录取的研究生复试红线,都是原则性问题
  4. [i春秋]“百度杯”CTF比赛 十月场-Hash
  5. 《第十二周任务二》分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre
  6. qstring如何初始化_学习QT之QString详解
  7. Inter-RAT Mobility in Connected State: UTRAN Part I Overview
  8. 京东商城VS当当网VS卓越亚马逊,不一样的百货商场
  9. 如何通过A/B测试提升Push推送消息点击率?
  10. RocksDB的一些基本概念及简单应用(扫盲)