hdu 2141 Can you find it?
来源:互联网 发布:python 最优化求解 编辑:程序博客网 时间:2024/05/17 20:57
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141
简单的哈希判重。。
#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<map>using std::map;using std::abs;using std::find;using std::pair;using std::vector;using std::multimap;#define pb(e) push_back(e)#define sz(c) (int)(c).size()#define mp(a, b) make_pair(a, b)#define all(c) (c).begin(), (c).end()#define iter(c) decltype((c).begin())#define cls(arr, val) memset(arr, val, sizeof(arr))#define cpresent(c, e) (find(all(c), (e)) != (c).end())#define rep(i, n) for(int i = 0; i < (int)n; i++)#define tr(c, i) for(iter(c) i = (c).begin(); i != (c).end(); ++i)const int N = 500007;const int INF = 0x3f3f3f3f;struct Hash_Set { int tot, num[N], head[N], next[N]; inline void init() { tot = 0, cls(head, -1); } inline void insert(int val) { int u = abs(val) % N; num[tot] = val, next[tot] = head[u], head[u] = tot++; } inline bool find(int val) { int u = abs(val) % N; for (int i = head[u]; ~i; i = next[i]) { if (num[i] == val) return true; } return false; }}hash;int A[3][510];int main() {#ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "w+", stdout);#endif int l, n, m, t, v, k = 1; while (~scanf("%d %d %d", &l, &n, &m)) { hash.init(); rep(i, l) scanf("%d", &A[0][i]); rep(i, n) scanf("%d", &A[1][i]); rep(i, m) scanf("%d", &A[2][i]); rep(i, l) { rep(j, n) { int val = A[0][i] + A[1][j]; hash.insert(val); } } scanf("%d", &t); printf("Case %d:\n", k++); while (t--) { bool f = false; scanf("%d", &v); rep(i, m) { if (hash.find(v - A[2][i])) f = true; } puts(f ? "YES" : "NO"); } } return 0;}
0 0
- HDU/HDOJ 2141 Can you find it?
- hdu 2141 can you find it?
- HDU-2141 can you find it?
- hdu 2141 Can you find it?
- Can you find it? hdu 2141
- HDU 2141 Can you find it?
- hdu 2141 Can you find it ?
- hdu(2141) Can you find it?
- Can you find it?(hdu 2141)
- hdu 2141 Can you find it?
- HDU 2141 Can you find it?
- HDU - 2141 Can you find it?
- hdu 2141 Can you find it? 二分
- HDU 2141 Can you find it?
- HDU - 2141 Can you find it?
- hdu 2141 can you find it?
- HDU 2141 Can you find it?(二分)
- hdu 2141 Can you find it? 二分
- 设计模式之外观模式
- 代码简短且隐蔽的后门木马
- iOS学习总结之多线程编程(NSThread)-线程的状态
- 怀着对未来美好的憧憬和对C++的无限的崇拜
- Xcode cannot run using the selected device.
- hdu 2141 Can you find it?
- C++静态成员函数小结(转)
- C++已经丧失了昔日的辉煌
- 2015年终总结(一)
- 程序包com.sun.image.codec.jpeg不存在
- 对几种常见设计模式的理解
- Fragment与FragmentManager
- 程序员——伤不起的三十岁
- 动态规划—最优二叉搜索树