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 ...
随机推荐
- JavaScript DOM编程艺术-学习笔记
发现基础不是很好,补习一下.37买了2本书(dom编程和高级程序设计). 以前读书总是自己勾勾画画,有点没意思.现在写下来,说不定会成为传世经典.哈哈...........随便扯扯淡. 第一天(201 ...
- 架设自己的FTP服务器 Serv-U详细配置图文教程
转自:http://www.jb51.net/article/31635.htm 所有不是很要求安全的情况下是可以用serv_U的,当然我们也可以通过一些设置,保证serv_u安全运行.这里就分享下s ...
- APP性能测试工具
各种自动化工具作用: 自动化:appium 针对接口做压测:jmeter 执行一段脚本,随机乱点:monkey 如果有用loadrunner12的话 也可以用mobilerecoder录制脚本(lr1 ...
- log4j.properties全配置 (转)
###############################log4j.properties############################### ##### Global Log Leve ...
- UML类图几种关系总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- box2d 已知bug
1.动态刚体与一个与静态刚体重叠的小的感应刚体在contactBegin时,有些时候无法侦测到
- 超链接解决头部fixed问题
///////////超链接解决头部fixed问题 $('a[href*=#]').click(function () { var top1 = $(".header").heig ...
- javascript中关于this的理解
首先看一下这几个定义 this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被视为某个对象的方法调用时,this等于那个对象. 不过,匿名函数的执行环境具有全 ...
- vim 替换
摘自: vim替换命令 替換(substitute) :[range]s/pattern/string/[c,e,g,i] range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後 ...
- java中的foreach输出数组中的元素
public class forEach { public static void main(String[]args){ String [] hobby = {"imooc",& ...