例题8-3 和为0的4个值(4 Values Whose Sum is Zero, ACM/ICPC SWERC 2005, UVa 1152)
来源:互联网 发布:mac用什么flash player 编辑:程序博客网 时间:2024/06/06 10:52
用map效率有点低啊,tle了。
#include <set>#include <map>#include <ctime>#include <cmath>#include <stack>#include <queue>#include <deque>#include <cstdio>#include <string>#include <vector>#include <cctype>#include <sstream>#include <utility>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define SF(a) scanf("%d", &a)#define PF(a) printf("%d\n", a) #define SFF(a, b) scanf("%d%d", &a, &b) #define SFFF(a, b, c) scanf("%d%d%d", &a, &b, &c)#define CLEAR(a, b) memset(a, b, sizeof(a))#define IN() freopen("in.txt", "r", stdin)#define OUT() freopen("out.txt", "w", stdout)#define FOR(i, a, b) for(int i = a; i < b; ++i)#define LL long long#define maxn 4005#define maxm 205#define mod 1000000007#define INF 10000007#define eps 1e-4using namespace std;//-------------------------CHC------------------------------//int a[maxn], b[maxn], c[maxn], d[maxn];int sum[maxn*maxn];int main() {int t;SF(t);while (t--) {int n;SF(n);FOR(i, 0, n) SFFF(a[i], b[i], c[i]), SF(d[i]);int ns = 0;FOR(i, 0, n) FOR(j, 0, n) sum[ns++] = a[i] + b[j];LL ans = 0;sort(sum, sum + ns);FOR(i, 0, n) FOR(j, 0, n)ans += upper_bound(sum, sum + ns, -c[i] - d[j]) - lower_bound(sum, sum + ns, -c[i] - d[j]);printf("%lld\n", ans);if (t) puts("");}return 0;}
hash实现 1.01s
#include <set>#include <map>#include <ctime>#include <cmath>#include <stack>#include <queue>#include <deque>#include <cstdio>#include <string>#include <vector>#include <cctype>#include <sstream>#include <utility>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define SF(a) scanf("%d", &a)#define PF(a) printf("%d\n", a) #define SFF(a, b) scanf("%d%d", &a, &b) #define SFFF(a, b, c) scanf("%d%d%d", &a, &b, &c)#define CLEAR(a, b) memset(a, b, sizeof(a))#define IN() freopen("in.txt", "r", stdin)#define OUT() freopen("out.txt", "w", stdout)#define FOR(i, a, b) for(int i = a; i < b; ++i)#define LL long long#define maxn 4005#define maxm 205#define mod 1000000007#define INF 10000007#define eps 1e-4using namespace std;//-------------------------CHC------------------------------//struct hash_map {static const int mask = 0x7ffffff;int q[mask + 1], p[mask + 1];void clear() { CLEAR(q, 0); }int& operator[](int k) {int i;for (i = k & mask; q[i] && p[i] != k; i = (i + 1) & mask);p[i] = k; return q[i];}}Hash;int a[maxn], b[maxn], c[maxn], d[maxn];int main() {int t;SF(t);while (t--) {Hash.clear();int n;SF(n);FOR(i, 0, n) SFFF(a[i], b[i], c[i]), SF(d[i]);FOR(i, 0, n) FOR(j, 0, n) ++Hash[a[i] + b[j]];LL ans = 0;FOR(i, 0, n) FOR(j, 0, n) ans += Hash[-c[i] - d[j]];printf("%lld\n", ans);if (t) puts("");}return 0;}
阅读全文
0 0
- 例题8-3 和为0的4个值(4 Values Whose Sum is Zero, ACM/ICPC SWERC 2005, UVa 1152)
- 和为0的4个值(4 Values Whose sum is Zero UVa 1152)
- 例题 8-3 UVA - 1152 4 Values whose Sum is 0(和为0的4个值)(二分枚举)
- [UVa 1152] 和为0的四个值(4 Values whose Sum is 0)
- UVa #1152 4 Values whose Sum is 0 (例题8-3)
- UVA1152:4 Values whose Sum is 0(和为0的4个值)
- uva 1152(4 values whose sum is zero)
- UVA 1152(p237)----4 Values Whose Sum is Zero
- UVA 1152 4 Values Whose Sum is Zero(好用的hash标记)
- 4 Values whose Sum is 0 UVA
- 4 Values whose Sum is 0 UVA
- 4 Values whose Sum is 0 UVA
- uva 1152 4 values whose sum is zero ——yhx
- uva 1152 4 values whose sum is zero ——yhx
- uva 1152-4 Values whose Sum is 0
- UVA - 1152 4 Values whose Sum is 0 二分法
- UVa 1152 4Values whose Sum is 0
- UVa 1152 4 Values whose Sum is 0
- hdu2614(dfs)
- mysql 共享锁与排他锁
- IO流(二)
- 交通工具
- JVM
- 例题8-3 和为0的4个值(4 Values Whose Sum is Zero, ACM/ICPC SWERC 2005, UVa 1152)
- 图结构练习——最短路径(dijkstra算法)
- 括号匹配详解
- 三目运算符?:
- 日期和时间
- 十月十三日课堂笔记
- VS2013 调试窗口一闪而过的解决方法
- 链表(用一个结构体管理另一个结构体的头指针),方便管理好几个链表的情况。
- CCF 通信网络