HDU-6968-I love exam
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相关推荐
- I love exam HDU - 6968
I love exam HDU - 6968 题意: 有n个考试科目,现在有m套复习资料,每套复习资料需要花费wi天使用,用完提升ci的分数,现在还有t天复习时间,挂科数目不能超过p,问所有达到的最大 ...
- hdu 6656 Final Exam
题意:给出n个题目,题目总分m分,每道题至少需要对应的分数+1的时间复习才可以通过,需要通过k个题目,试问如何安排复习时间才是最快的? 思路: 思考学生复习的最坏的情况是老师出的(n-k+1)个题目他 ...
- 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 ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 1272 小希的迷宫
Problem Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该 ...
最新文章
- 学习HTML-Beautify.js
- Redis的常用命令——set的常用命令
- LeetCode14 最长公共前缀
- 【java】动态绑定机制
- View的缩放操作--CGAffineTransformMakeScale:
- python和django中的常见错误
- 如何查看有没有django及版本
- CISCO 路由器(1)
- 【干货】前端开发者最常用的六款IDE
- 华为服务器维修期,拆看一台1U华为服务器RH1288 V2-8S
- Java千百问_01基本概念(015)_阻塞、非阻塞有什么区别
- 真正的爱情是日久生情
- PTA求100以内的素数
- eclipse官方下载32位和64位的具体步骤
- 为什么要分库分表?一个业务场景来理顺它!
- SpringBoot整合Graylog做日志收集
- opencv-python DIS光流
- iOS 浏览相册功能实现 —— HERO博客
- 小米android手机密码忘了怎么解锁,小米手机锁屏密码忘了该如何解决?教你多种办法...
- 2022年度电商“三巨头”阿里,京东,拼多多的“暗战”
热门文章
- 对于回归方程和线性回归方程的个人理解
- 毕业了,发布一下我的求职简历(.net程序员)
- 即便考分很好也不予录取的研究生复试红线,都是原则性问题
- [i春秋]“百度杯”CTF比赛 十月场-Hash
- 《第十二周任务二》分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre
- qstring如何初始化_学习QT之QString详解
- Inter-RAT Mobility in Connected State: UTRAN Part I Overview
- 京东商城VS当当网VS卓越亚马逊,不一样的百货商场
- 如何通过A/B测试提升Push推送消息点击率?
- RocksDB的一些基本概念及简单应用(扫盲)