hdu_1074_Doing Homework(状压DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1074
题意:给你n个课程(n<=15)每个课程有限制的期限和完成该课程的时间,如果超出时间,每超一天扣一分,问完成全部课程,最少会扣多少分。
题解:典型的状压DP
#include<cstdio>
#define FFC(i,a,b) for(int i=a;i<=b;++i) int T,n,end,inf=1e9,cur,now,nowd,nowc,v[];
struct dt{char nm[];int d,c;}ta[];
struct dtt{int mi,pre,d;}dp[<<];//mi表示最小扣分,pre表示上一种状态,d表示当前时间 void out(int now){//递归输出结果
if(dp[now].pre==-)return;
out(dp[now].pre);
FFC(i,,n-){
int cur=<<i;
if((now&cur)&&!v[i+])printf("%s\n",ta[i+].nm),v[i+]=;
}
} int main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n),end=(<<n)-,dp[].pre=-,dp[].d=,dp[].mi=;
FFC(i,,n)scanf("%s%d%d",ta[i].nm,&ta[i].d,&ta[i].c),v[i]=;
FFC(i,,(<<n)-)dp[i].mi=inf;
FFC(i,,end)FFC(j,,n-){
if(((cur=<<j)&i)==){//如果没完成,则完成这个作业
now=cur|i,nowd=dp[i].d+ta[j+].c;
nowc=nowd-ta[j+].d,nowc=nowc<=?:nowc;
if(dp[now].mi>dp[i].mi+nowc)
dp[now].mi=dp[i].mi+nowc,dp[now].pre=i,dp[now].d=nowd;
}
}
printf("%d\n",dp[end].mi);
out(end);
}
return ;
}
hdu_1074_Doing Homework(状压DP)的更多相关文章
- HDU 1074 Doing Homework 状压dp(第一道入门题)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU1074 Doing Homework —— 状压DP
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Time Limit: 2000/1000 MS (J ...
- HDU 1074 Doing Homework (状压DP)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU 1074 Doing Homework 状压DP
由于数据量较小,直接二进制模拟全排列过程,进行DP,思路由kuangbin blog得到,膜拜斌神 #include<iostream> #include<cstdio> #i ...
- HDU 1074 Doing Homework【状压DP】
Doing Homework Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he ...
- Doing Homework HDU - 1074 (状压dp)
Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every ...
- kuangbin专题十二 HDU1074 Doing Homework (状压dp)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU 1074:Doing Homework(状压DP)
http://acm.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Problem Description Ignatius has just ...
- HDU1074:Doing Homework(状压DP)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
随机推荐
- 描述符和property内建函数
首先我们搞清楚__getattr__ ,__get__ 和 __getattribute__ 作用的不同点. __getattr__在授权中会用到. __getattribute__ 当要访问属性时 ...
- 语言总结—C/C++
参考<程序员面试宝典> 1. 基本概念 1.1 赋值语句 例1. 按位与操作,例如:a=3,b=3,a&b值等于 0011 & 0011 结果还是0011,那么值还是3: ...
- IP地址接口小结
1 百度http://api.map.baidu.com/location/ip?ak=F454f8a5efe5e577997931cc01de3974&ip=58.67.143.169 {& ...
- webapp在Android中点击链接的时候会有淡蓝色的遮罩层
body{-webkit-tap-highlight-color: rgba(0,0,0,0);}
- ZZNU 1993: cots' friends
题目描述 cot 最近非常喜欢数字, 喜欢到了什么程度呢, 已经走火入魔了.... cot把每个朋友编上一个序号,然后遇到谁就叫"XX号",对此,他的朋友们一致认为cot" ...
- HDU 5831 Rikka with Parenthesis II
如果左括号数量和右括号数量不等,输出No 进行一次匹配,看匹配完之后栈中还有多少元素: 如果n=2,并且栈中无元素,说明是()的情况,输出No 如果n=2,并且栈中有元素,说明是)(的情况,输出Yes ...
- 第七十一,CSS颜色与度量单位
CSS颜色与度量单位 学习要点: 1.颜色表方案 2.度量单位 本章主要探讨HTML5中CSS颜色和度量单位等问题,包括颜色的选取方式.相对长度和绝对长度等. 一.颜色表方案 1 颜色的表现形式主 ...
- gitc2016——打造互联网技术狂欢盛宴
gitc2016全球互联网技术大会由麒麟会主办,iTech Club(互联网技术精英俱乐部)协办.网堤安全将作为云安全服务提供商应邀出席本届大会,gitc2016会有怎样的精彩内容?我们一起来一探究竟 ...
- c# listview的使用
C#向listview中添加项
- List分页 参考
public <T> List<List<T>> splitList(List<T> list, int pageSize) { int listSiz ...