题目连接: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)的更多相关文章

  1. HDU 1074 Doing Homework 状压dp(第一道入门题)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  2. HDU1074 Doing Homework —— 状压DP

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Time Limit: 2000/1000 MS (J ...

  3. HDU 1074 Doing Homework (状压DP)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  4. HDU 1074 Doing Homework 状压DP

    由于数据量较小,直接二进制模拟全排列过程,进行DP,思路由kuangbin blog得到,膜拜斌神 #include<iostream> #include<cstdio> #i ...

  5. HDU 1074 Doing Homework【状压DP】

    Doing Homework Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he ...

  6. 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 ...

  7. kuangbin专题十二 HDU1074 Doing Homework (状压dp)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  8. HDU 1074:Doing Homework(状压DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Problem Description Ignatius has just ...

  9. HDU1074:Doing Homework(状压DP)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

随机推荐

  1. 描述符和property内建函数

    首先我们搞清楚__getattr__ ,__get__ 和 __getattribute__ 作用的不同点. __getattr__在授权中会用到. __getattribute__  当要访问属性时 ...

  2. 语言总结—C/C++

    参考<程序员面试宝典> 1. 基本概念 1.1 赋值语句 例1. 按位与操作,例如:a=3,b=3,a&b值等于 0011 & 0011 结果还是0011,那么值还是3: ...

  3. IP地址接口小结

    1 百度http://api.map.baidu.com/location/ip?ak=F454f8a5efe5e577997931cc01de3974&ip=58.67.143.169 {& ...

  4. webapp在Android中点击链接的时候会有淡蓝色的遮罩层

    body{-webkit-tap-highlight-color: rgba(0,0,0,0);}

  5. ZZNU 1993: cots' friends

    题目描述 cot 最近非常喜欢数字, 喜欢到了什么程度呢, 已经走火入魔了.... cot把每个朋友编上一个序号,然后遇到谁就叫"XX号",对此,他的朋友们一致认为cot" ...

  6. HDU 5831 Rikka with Parenthesis II

    如果左括号数量和右括号数量不等,输出No 进行一次匹配,看匹配完之后栈中还有多少元素: 如果n=2,并且栈中无元素,说明是()的情况,输出No 如果n=2,并且栈中有元素,说明是)(的情况,输出Yes ...

  7. 第七十一,CSS颜色与度量单位

    CSS颜色与度量单位 学习要点: 1.颜色表方案 2.度量单位 本章主要探讨HTML5中CSS颜色和度量单位等问题,包括颜色的选取方式.相对长度和绝对长度等.   一.颜色表方案 1 颜色的表现形式主 ...

  8. gitc2016——打造互联网技术狂欢盛宴

    gitc2016全球互联网技术大会由麒麟会主办,iTech Club(互联网技术精英俱乐部)协办.网堤安全将作为云安全服务提供商应邀出席本届大会,gitc2016会有怎样的精彩内容?我们一起来一探究竟 ...

  9. c# listview的使用

    C#向listview中添加项

  10. List分页 参考

    public <T> List<List<T>> splitList(List<T> list, int pageSize) { int listSiz ...