UVA - 11691(dp 集合类)
2015-03-25 08:45
351 查看
这个题目的意思,就是给每种过敏物质最少一天的独立观察时间。直接
d(s,i)代表当前已经选的集合s下,留下i天供交叉用。
d(s,i)代表当前已经选的集合s下,留下i天供交叉用。
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <set> #include <algorithm> #include <vector> #include <queue> #include <map> using namespace std; typedef unsigned long long LLU; const int maxn = (1<<20); int d[maxn][7],a[21],n; int main() { int T; scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int N = (1<<n); for(int s=N-1;s>=0;s--) for(int i=0;i<=6;i++){ if(s == N-1){ d[s][i] = i; continue; } d[s][i] = 1e6; for(int j=0;j<n;j++)if(!(s&(1<<j))){ int le,add; if(a[j] > i) {le = a[j]-i-1;} else {le = 0;} d[s][i] = min(d[s][i],d[s|(1<<j)][le]+i+1); } } cout<<d[0][0]<<endl; } return 0; }
相关文章推荐
- UVA 11691 Allergy Test(状压dp)
- uva 11691 - Allergy Test(DP+map)
- UVA 12594 Naming Babies (斜率优化DP)
- UVALive - 4015 - 树形dp
- UVA 11361 - Investigating Div-Sum Property 数位DP
- 【DP】UVA 103 Stacking Boxes 输出路径
- uva3942 字典树加dp
- Uva-825 Walking on the Safe Side 水DP
- UVA 10253 Series-Parallel Networks (树形dp)
- 【DP】UVA 10131 Is Bigger Smarter? LIS
- *UVA 1169 Robotruck ACM解题报告(dp单调队列优化)
- UVa 11008 - Antimatter Ray Clearcutting(状态压缩dp)
- UVA 11762 概率dp+期望
- UVa 11081 - Strings(dp)
- UVALive 4126 Password Suspects (AC自动机+DP)
- UVA 825 Walking on the Safe Side(DP)
- UVA 10534 Wavio Sequence (波浪DP,4级)
- uva 10271 (dp)
- UVA 10037 Bridge (基础DP)
- 【UVALive 7505】Hungry Game of Ants(DP)