HDU 5890 Eighty seven(DP+bitset优化)
题目链接 Eighty seven
背包(用bitset预处理)然后对于每个询问O(1)回答即可。
预处理的时候背包。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i(a); i <= (b); ++i) #define dec(i, a, b) for(int i(a); i >= (b); --i) const int N = 52; int T, q, n; int f[N][N][N], c[5], a[N], Q; bitset <90> A[12]; int check( int i, int j, int k){ rep(h, 0, 10) A[h].reset(); A[0][0] = 1; rep(h, 1, n) if (h != i && h != j && h != k && a[h] <= 87) dec(p, 9, 0){ A[p + 1] |= A[p] << a[h]; if (A[10][87]) return 1; } return 0; } int main(){ scanf ( "%d" , &T); while (T--){ scanf ( "%d" , &n); rep(i, 1, n) scanf ( "%d" , a + i); rep(i, 1, n) rep(j, i, n) rep(k, j, n) f[i][j][k] = check(i, j, k); scanf ( "%d" , &Q); while (Q--){ scanf ( "%d%d%d" , c + 1, c + 2, c + 3); sort(c + 1, c + 4); puts (f[c[1]][c[2]][c[3]] ? "Yes" : "No" ); } } return 0; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步