#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
using namespace std;
const int INF=0x3f3f3f3f;
const int MAXN=(<<)+;
const int MOD=1e9+;
int dead[],cost[];
int dp[MAXN],t[MAXN];
char s[][];
int pre[MAXN];
void print(int x)
{
if(x==)
return;
print(x^(<<pre[x]));
printf("%s\n",s[pre[x]] );
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(pre,,sizeof pre);
int n;
scanf("%d",&n);
for(int i=; i<n; i++)
scanf("%s%d%d",s[i],&dead[i],&cost[i] );
for(int i=; i<(<<n); i++)
{
dp[i]=INF;
for(int j=n-; j>=; j--)
{
int tmp=<<j;
//如果没有做
if(! (i&tmp) )
continue;
//做这个题之后的分数+花费-期限=扣得分
int score=t[i^tmp]+cost[j]-dead[j];
//如果小于,说明不扣分
if(score<)
score=;
//如果当前的状态扣的分数 > 做这个题之后扣的分
if(dp[i]>dp[i^tmp]+score)
{
//分数
dp[i]=dp[i^tmp]+score;
//花的时间
t[i]=t[i^tmp]+cost[j];
//转移状态,这个状态下做的题
pre[i]=j;
}
}
}
printf("%d\n", dp[(<<n)-]);
print((<<n)-);
}
return ;
}

最新文章

  1. 用Intent实现activity的跳转
  2. Linux系统日志及日志分析
  3. [Head First Python]2. BIF(内置函数)
  4. poj3673---双重for循环
  5. webstorm入门1-主题和配色
  6. 北风风hadoop课程体系
  7. CentOS7 emacs安装
  8. ios8指纹识别
  9. leetcode第一刷_Populating Next Right Pointers in Each Node II
  10. Ubuntu系统怎么切换多用户命令界面
  11. 《剑指offer》二叉树的深度
  12. python 练习2
  13. maven+Spring+SpringMVC+Hibernate快速搭建
  14. Linux脚本点滴
  15. vm虚拟机下ubuntu连接上ssr
  16. SecureCR 改变背景色和文字颜色
  17. 微软Office Online服务安装部署(一)
  18. idea及webstorm破解方法(转)
  19. 论文笔记——Deep Residual Learning for Image Recognition
  20. ML(4): 决策树分类

热门文章

  1. transient关键字和serialVersionUID
  2. C语言基础五 数组
  3. Nginx之常用基本配置
  4. 【二】、UML基础知识——图图解乾坤
  5. 一招教你轻松使用数据可视化BI软件创建旅游消费数据可视化大屏
  6. docker配置仓库源
  7. Html介绍,认识html文件基本结构
  8. c#画图之柱形图
  9. 【sklearn】特征选择和降维
  10. ajax-属性、原理、实现html5进度条上传文件