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相关推荐

  1. HDU 1074 Doing Homework【状态压缩DP】

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意: 给定作业截止时间和完成作业所需时间,比截止时间晚一天扣一分,问如何安排作业的顺序使得最 ...

  2. Doing Homework HDU - 1074

    Doing Homework HDU - 1074 题意: 有n个任务,每个任务有一个截止时间,超过截止时间一天,要扣一个分. 求如何安排任务,使得扣的分数最少. (1<=n<=15) 题 ...

  3. 动态规划训练16 [Doing Homework HDU - 1074 ]

    Doing Homework HDU - 1074 这是一道状态压缩DP(从N <= 15就可以看出来). 我们定义二进制状态S代表的是目前已经安排好的任务 dp[S].val代表的是目前已经安 ...

  4. HDUOJ 1074 Doing Homework

    HDUOJ 1074 Doing Homework 题目链接 Problem Description Ignatius has just come back school from the 30th ...

  5. hdu 1074 状压dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意:有n个作业,对于每一个作业有一个deadline,有一个完成这作业所需要的时间.如果超过d ...

  6. HDU 1789 Doing Homework again(馋)

    意甲冠军  参加大ACM竞争是非常回落乔布斯  每一个工作都有截止日期   未完成必要的期限结束的期限内扣除相应的积分   求点扣除的最低数量 把全部作业按扣分大小从大到小排序  然后就贪阿  能完毕 ...

  7. hdu 1789 Doing Homework again

    又是一次初始化惹的货!!! 超级水的贪心...害的我以为思路错误~~ ~ #include<iostream>#include<cstdio>#include<cmath ...

  8. HDU 1789 Doing Homework again (贪心)

    http://blog.csdn.net/dgq8211/article/details/7538060 题目链接:Click here~~ 题意: 有 n 门作业,每门作业都有自己的截止期限,当超过 ...

  9. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

  10. 算法学习经典例题整理

    陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...

最新文章

  1. FastDFS安装、配置、部署(一)
  2. python详细下载安装教程-Pycharm及python安装详细教程
  3. 20应用统计考研复试要点(part18)--概率论与数理统计
  4. nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace
  5. python启动方法_python进程开启的两种方式
  6. vs2013配置python_VS2013中Python学习笔记[环境搭建]
  7. TensorFlow中查看checkpoint文件中的变量名和对应值
  8. Go 面试专题 | slice 扩容后的内存容量如何计算?
  9. oracle视图总结(创建、查询、改动、删除等)
  10. c++ opencv mat_实战 | OpenCV 实现多张图像拼接
  11. HmacSHA256算法实现消息认证
  12. 发送短信功能-联通接口
  13. 音频处理——音频处理的基本概念
  14. 压缩包文件的解压密码如何破解
  15. 路由器与无线网如何连接到服务器,两个路由器无线连接怎么设置_如何将两个路由器无线连接-192路由网...
  16. 柱状图折线图混合使用
  17. 软件测试自学毛笔字纹身,横眉冷对千夫指 俯首甘为孺子牛的毛笔楷书和行书...
  18. mkv文件如何转为mp4?
  19. 前端性能优化 之 首屏预渲染
  20. http://www.sciencedirect.com/ 外文文献免费全文下载方法

热门文章

  1. Sublime text3 Emmet使用
  2. Mozilla网站安全分析工具Observatory已发布
  3. 1.1 Spring的整体架构--Spring源码深度解析
  4. 香蕉派路由功Openwrt、Android功耗对照測试
  5. JAVA分析html算法(JAVA网页蜘蛛算法)
  6. 从客户端中检测到有潜在危险的request.form值
  7. 对象序列化实现深度克隆
  8. Hibernate+Spring整合使用二级缓存
  9. why the ebitda and ebit differ so much for netflix?
  10. Girton College Info Session Abstract