https://odzkskevi.qnssl.com/b506a3c20adad78678917d1ff4c9b953?v=1508327485

【题解】

dp[i][S1][S2]表示前i个教师选/不选已经决策完,当前有一个老师教的课程为S1,两个老师教的课程为S2,还需要的最小价值

答案为dp[0][0][0]

转移即可

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <vector>
#include <string>
#include <cmath>
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b)) inline void swap(int &a, int &b)
{
int tmp = a;a = b;b = tmp;
} inline void read(int &x)
{
x = ;char ch = getchar(), c = ch;
while(ch < '' || ch > '')c = ch, ch = getchar();
while(ch <= '' && ch >= '')x = x * + ch - '', ch = getchar();
if(c == '-')x = -x;
} const int INF = 0x3f3f3f3f;
const int MAXN = + ;
const int MAXM = + ;
const int MAXS = ; struct Edge
{
int u,v,nxt;
Edge(int _u, int _v, int _nxt){u = _u;v = _v;nxt = _nxt;}
Edge(){}
}edge[MAXN << ];
int head[MAXN], cnt; inline void insert(int a, int b)
{
edge[++cnt] = Edge(a,b,head[a]);
head[a] = cnt;
} int m,n,s,c[MAXN + MAXM],a[MAXN + MAXM],dp[MAXN + MAXM][ << MAXS][ << MAXS],ma;
std::string ch; int DP(int i, int s0, int s1, int s2)
{
if(i > n + m) return s2 == ma - ? : INF;
if(dp[i][s1][s2] >= )return dp[i][s1][s2];
dp[i][s1][s2] = INF;
if(i > m) dp[i][s1][s2] = DP(i + , s0, s1, s2);
int tmp1 = s0 & a[i], tmp2 = s1 & a[i];
dp[i][s1][s2] = min(dp[i][s1][s2], DP(i + , s0^tmp1, (s1 ^ tmp2) | tmp1, s2 | tmp2) + c[i]);
return dp[i][s1][s2];
} int main()
{
while(scanf("%d %d %d", &s, &m, &n) != EOF && n + m + s)
{
std::cin.get();
memset(dp, -, sizeof(dp));
memset(a, , sizeof(a));
int tmp;
for(register int i = ;i <= m + n;++ i)
{
getline(std::cin, ch);
std::stringstream cc(ch);
cc >> c[i];
a[i] = ;
while(cc >> tmp)
a[i] |= << (tmp - );
}
ma = << s;
printf("%d\n", DP(, ma - , , ));
}
return ;
}

UVA10817

最新文章

  1. PHP 信号管理
  2. Java中的URL类
  3. 启动tomcat 报 Could not delete D:/online/.metadata/.plugins/org.eclipse.wst.server.core/tm
  4. 解决cefsharp在winform中不显示tooltipText问题(网页元素的title提示)
  5. codevs1183 泥泞的道路
  6. 如何更高效地定制你的bootstrap
  7. java内存分配--引用
  8. 用javascript比较快速排序和合并排序的优劣
  9. mono的远程调试
  10. model 的验证
  11. 第一节 HTML网页和CSS样式
  12. schedule CCCallfunc CCCallfuncN CCCallfuncND
  13. 父 shell,子 shell ,export 与 变量传递
  14. zoj2112
  15. VMware 安装centOS6.4虚拟机以及基础环境搭建
  16. 设计模式10---设计模式之原型模式(Prototype)
  17. centos6 + tomcat+ jdk配置步骤
  18. 模板语言变量,js变量,js自执行函数之前嵌套调用
  19. 详解URL的组成
  20. Docker 入门到实践(三)Docker 安装

热门文章

  1. CSS或HTML如何实现文字下面加点?
  2. kafka集群搭建文档
  3. UVA--624 CD(01背包+路径输出)
  4. NopCommerce3.9安装
  5. redux在react项目中的应用
  6. line-height影响排版
  7. pandas一些基本操作(DataFram和Series)_2
  8. HBase 数据坐标
  9. 在Apline编译Mariadb 常见错误
  10. [转]Visual Studio 2010生成解决方案时,提示磁盘空间不足!