[状压DP]TCO 2016 Fianl Div 1 Easy MealPlan
来源:互联网 发布:淘宝客点击数少 编辑:程序博客网 时间:2024/06/10 21:59
Description
给定四个集合
每次从四个集合里分别选出一个数组成可重集合
问可形成的
Solution
考虑这样的状态:
当前已考虑前
把同一元素在四个集合中的出现情况压成
再考虑把
每次只要枚举本次要选取的状态,从当前状态的子集转移,保证不会从同一集合中多选就好了。
#include <bits/stdc++.h>using namespace std;class MealPlan{ public: map<int, long long> mp, dp, dp1; long long ans; inline int BitCount(int x) { int cnt = 0; for (; x; x -= x & -x) ++cnt; return cnt; } long long countDistinct(vector<int> a, vector<int> b, vector<int> c, vector<int> d) { for (int i : a) mp[i] |= 1; for (int i : b) mp[i] |= 2; for (int i : c) mp[i] |= 4; for (int i : d) mp[i] |= 8; dp1[1] = 1; for (auto i: mp) { dp = dp1; int s = i.second; for (auto j: dp1) { int x = j.first; long long res = j.second; for (int k = 1; k <= 4; k++) { int y = 0; for (int t = s; t; t = s & (t - 1)) { if (BitCount(t) == k) { for (int p = 0; p < 16; p++) if (!(p & t) && (x >> p & 1)) y |= 1 << (p | t); } } if (y) dp[y] += res; } } dp1 = dp; } for (auto x: dp) if (x.first >> 15 & 1) ans += x.second; return ans; }};MealPlan S;vector<int> p[4];int n, x;int main(void) { freopen("1.in", "r", stdin); for (int i = 0; i < 4; i++) { cin >> n; for (int j = 0; j < n; j++) { cin >> x; p[i].push_back(x); } } cout << S.countDistinct(p[0], p[1], p[2], p[3]) << endl; return 0;}
阅读全文
2 0
- [状压DP]TCO 2016 Fianl Div 1 Easy MealPlan
- TCO 2015 Round 1A DIV 1 1000
- 2016 TCO Algorithm 1B SettingShield
- fianl
- fianl
- TCO 2016 R1C
- 2016CCPC-Fianl宁波流水账
- Topcoder 2016 TCO Algorithm Algo Semifinal 1 Hard
- 【TCO 2012】WildCard SemiMultiple 区间DP
- HDU 3182【状压DP--easy】
- TCO 2013 Round 1A
- 2005 TCO Online Round 1
- Easy 2048 Again - ZOJ 3802 状压dp
- ZOJ 3802 Easy 2048 Again(状压dp)
- ZOJ 3802 Easy 2048 Again 状压DP
- ZOJ -- 3802 Easy 2048 Again(状压dp)
- zoj3802 Easy 2048 Again 状压dp
- [zoj 3802]Easy 2048 Again 状压DP
- maven依赖——RSA
- LuoguP2814 家谱 解题报告【并查集+map】
- Maven 手动安装本地jar包到本地仓库
- 分析解决Android ANR
- 原生AJAX记录
- [状压DP]TCO 2016 Fianl Div 1 Easy MealPlan
- 【BigHereo 37】---L10---C++真题之 代码填空
- IMX6+MAX9286高清环视
- mesos、marathon、chronos使用
- 本月腾讯,阿里,美团等技术团队的精品文章推送
- MySQL 5.6 for Windows 解压缩版配置安装
- 实时分析百度统计的数据?互联网人定要看!
- BZOJ 1673 浅谈深度优先式搜索及斐波拉契启发式AstaR剪枝
- muduo库源码学习(base)Date