hdu 4620 Fruit Ninja Extreme(暴力)
2015-10-26 21:51
357 查看
题目链接:hdu 4620 Fruit Ninja Extreme
解题思路
按照时间排序,时间间隔超过W的剪枝掉。代码
#include <cstdio> #include <cstring> #include <vector> #include <bitset> #include <algorithm> using namespace std; typedef pair<int,int> pii; const int maxn = 50; int N, M, W, cnt, ans[maxn], pos[maxn], C[maxn], arr[maxn][maxn], vis[205]; vector<pii> G; void init () { G.clear(); scanf("%d%d%d", &N, &M, &W); for (int i = 0; i < N; i++) { int c, t, s = 0, x; scanf("%d%d", &C[i], &t); for (int j = 0; j < C[i]; j++) scanf("%d", &arr[i][j]); G.push_back(make_pair(t, i)); } sort(G.begin(), G.end()); } int draw (int t, int v) { int ret = 0; for (int i = 0; i < C[t]; i++) { if (vis[arr[t][i]] == 0) ret++; vis[arr[t][i]] += v; } return ret; } void dfs (int d, int n) { if (n + d < cnt) return; if (d > cnt) { cnt = d; memcpy(ans, pos, sizeof(int) * cnt); } for (int i = (d == 0 ? 0 : pos[d-1] + 1); i < N; i++) { if (d && G[i].first - G[pos[d-1]].first > W) break; int t = draw(G[i].second, 1); if (t >= 3) { pos[d] = i; dfs(d + 1, N - i - 1); } draw(G[i].second, -1); } } int main () { int cas; scanf("%d", &cas); while (cas--) { init(); cnt = 0; memset(vis, 0, sizeof(vis)); dfs(0, N-1); for (int i = 0; i < cnt; i++) ans[i] = G[ans[i]].second + 1; sort(ans, ans + cnt); printf("%d\n", cnt); for (int i = 0; i < cnt; i++) printf("%d%c", ans[i], i == cnt-1 ? '\n' : ' '); } return 0; }
相关文章推荐
- UESTC OJ1217(树状数组)
- light oj 1100 - Again Array Queries
- UITableView 编辑
- UIImage剪切图片为自定义大小
- hdu 4604 Deque(LIS)
- UIWindow UILable 属性 方法
- POJ 2533 Longest Ordered Subsequence
- iOS 中UIButton的 settitle 和 titlelabel的使用误区
- Spark中DenseMatrix中values()和toArray方法的区别
- Pku1947 Rebuilding Roads
- UESTC OJ1218(DP)
- Leetcode -- N-Queens
- 5-3 Pop Sequence (25分)
- Storyboard doesn't contain a view controller with identifier 'UIViewController'
- Again Array Queries---Lightoj1100(循环暴力)
- Codeforces Round #327 (Div. 2) A. Wizards' Duel
- 浅谈Handler,Loop,MessageQueue,Thread的小秘密
- 使用pt-query-digest分析mysql慢查询日志(mysql slow query log )
- quick传递参数给shader
- Codeforces Gym 100589A Queries on the Tree(树状数组+分块)