hdu-1074 Doing Homework
yuan chuang
题意:有n个科目的作业,每个任务都有截止日期和完成时间,完成所有任务,如果超过一天,则扣一分;问你完成任务扣的最少分数,
并且输出完成任务的顺序;注:在某一个任务超期时,另一个任务也在超期
二进制压缩枚举各个状态
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
const int M = (1<<15)+3;
char str[20][20];
int dp[M],pre[M],d[M],f[M],t[M];
void output(int x){if(!x) return ;output(x-(1<<pre[x]));cout << str[pre[x]] << endl;
}
int main(){int T,n;cin >> T;while(T --){cin >> n;for(int i = 0;i < n;i ++){cin >> str[i] >> d[i] >> f[i];};int cnt = 1 << n;for(int i = 1;i < cnt;i ++ ){dp[i] = 121321312;for(int j = n-1;j >= 0;j --){int k = 1 << j;if(!(k&i)) continue;int temp = t[i-k] + f[j] - d[j];if(temp < 0) temp = 0;if(dp[i] > dp[i-k] + temp){dp[i] = dp[i-k] + temp;t[i] = t[i-k] + f[j];pre[i] = j;}}}cout << dp[cnt-1] <<endl;output(cnt-1);}
}
zoj - 2297 与上题类似,处理得过程中判断特殊的情况
题意:武士打怪,打完小怪之后,再打boss,在打的过程中如果HP小于ai则你就挂了,or 你可以得到bi的HP,问你能否打完小怪之后,还能不能把boss打败。
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int M = (1 << 20);
int a[25],b[25];
int p[M],dp[M];
int main(){int n,m;while(cin >> n){for(int i = 0;i < n-1;i++)cin >> a[i] >> b[i];cin >> m;memset(dp,0,sizeof(dp));dp[0] = 100;int cnt = 1 <<(n-1) ;for(int i = 0;i < cnt;i++){for(int j = n-2;j >= 0;j --){int k = 1 << j;if(!(i&k)) continue;if(dp[i-k] >= a[j]) {if(dp[i] < dp[i - k] - a[j] + b[j]){dp[i] = min(dp[i-k] - a[j] + b[j],100);}}}}if(dp[cnt - 1] >= m) cout << "clear!!!"<<endl;else cout << "try again" << endl;}
}
hdu-1074 Doing Homework相关推荐
- HDU 1074 Doing Homework【状态压缩DP】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意: 给定作业截止时间和完成作业所需时间,比截止时间晚一天扣一分,问如何安排作业的顺序使得最 ...
- Doing Homework HDU - 1074
Doing Homework HDU - 1074 题意: 有n个任务,每个任务有一个截止时间,超过截止时间一天,要扣一个分. 求如何安排任务,使得扣的分数最少. (1<=n<=15) 题 ...
- 动态规划训练16 [Doing Homework HDU - 1074 ]
Doing Homework HDU - 1074 这是一道状态压缩DP(从N <= 15就可以看出来). 我们定义二进制状态S代表的是目前已经安排好的任务 dp[S].val代表的是目前已经安 ...
- HDUOJ 1074 Doing Homework
HDUOJ 1074 Doing Homework 题目链接 Problem Description Ignatius has just come back school from the 30th ...
- hdu 1074 状压dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意:有n个作业,对于每一个作业有一个deadline,有一个完成这作业所需要的时间.如果超过d ...
- HDU 1789 Doing Homework again(馋)
意甲冠军 参加大ACM竞争是非常回落乔布斯 每一个工作都有截止日期 未完成必要的期限结束的期限内扣除相应的积分 求点扣除的最低数量 把全部作业按扣分大小从大到小排序 然后就贪阿 能完毕 ...
- hdu 1789 Doing Homework again
又是一次初始化惹的货!!! 超级水的贪心...害的我以为思路错误~~ ~ #include<iostream>#include<cstdio>#include<cmath ...
- HDU 1789 Doing Homework again (贪心)
http://blog.csdn.net/dgq8211/article/details/7538060 题目链接:Click here~~ 题意: 有 n 门作业,每门作业都有自己的截止期限,当超过 ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
最新文章
- FastDFS安装、配置、部署(一)
- python详细下载安装教程-Pycharm及python安装详细教程
- 20应用统计考研复试要点(part18)--概率论与数理统计
- nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace
- python启动方法_python进程开启的两种方式
- vs2013配置python_VS2013中Python学习笔记[环境搭建]
- TensorFlow中查看checkpoint文件中的变量名和对应值
- Go 面试专题 | slice 扩容后的内存容量如何计算?
- oracle视图总结(创建、查询、改动、删除等)
- c++ opencv mat_实战 | OpenCV 实现多张图像拼接
- HmacSHA256算法实现消息认证
- 发送短信功能-联通接口
- 音频处理——音频处理的基本概念
- 压缩包文件的解压密码如何破解
- 路由器与无线网如何连接到服务器,两个路由器无线连接怎么设置_如何将两个路由器无线连接-192路由网...
- 柱状图折线图混合使用
- 软件测试自学毛笔字纹身,横眉冷对千夫指 俯首甘为孺子牛的毛笔楷书和行书...
- mkv文件如何转为mp4?
- 前端性能优化 之 首屏预渲染
- http://www.sciencedirect.com/ 外文文献免费全文下载方法
热门文章
- Sublime text3 Emmet使用
- Mozilla网站安全分析工具Observatory已发布
- 1.1 Spring的整体架构--Spring源码深度解析
- 香蕉派路由功Openwrt、Android功耗对照測试
- JAVA分析html算法(JAVA网页蜘蛛算法)
- 从客户端中检测到有潜在危险的request.form值
- 对象序列化实现深度克隆
- Hibernate+Spring整合使用二级缓存
- why the ebitda and ebit differ so much for netflix?
- Girton College Info Session Abstract