HDU 4334 Trouble
2012-08-02 21:51
239 查看
算法:
比赛时,最先想到的是O( N * N * N + N ^2 * log (N * N * N )) = O( N * N*N)的时间复杂度。
N <= 200,5s中肯定不会超时。
写出来提交MLE。。然后计算下内存
要开800 0000数组,long long 型。
M = 800 0000 * 8 = 6400 0000 字节 = 61 M, 只能开4000000
然后开40000数组。。
时间复杂度变成O( N ^ 3 * log N )
提交TLE。。
泪奔,改为HASH。。
O(N * N * N)静态链表处理冲突。。
AC。4000多ms...时间好高,旭哈希过的1600ms..
原因是我定义的long long hash[],每次memset好浪费时间。。
标程算法是:
合并1,2集合,排序,合并3,4集合排序,然后查找。。左右逼近
时间复杂度O(N*N*N)
写了下,竟然排到第一名去了,700多ms
View Code
比赛时,最先想到的是O( N * N * N + N ^2 * log (N * N * N )) = O( N * N*N)的时间复杂度。
N <= 200,5s中肯定不会超时。
写出来提交MLE。。然后计算下内存
要开800 0000数组,long long 型。
M = 800 0000 * 8 = 6400 0000 字节 = 61 M, 只能开4000000
然后开40000数组。。
时间复杂度变成O( N ^ 3 * log N )
提交TLE。。
泪奔,改为HASH。。
O(N * N * N)静态链表处理冲突。。
AC。4000多ms...时间好高,旭哈希过的1600ms..
原因是我定义的long long hash[],每次memset好浪费时间。。
标程算法是:
合并1,2集合,排序,合并3,4集合排序,然后查找。。左右逼近
时间复杂度O(N*N*N)
写了下,竟然排到第一名去了,700多ms
View Code
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<iostream> #include<vector> #include<string> #include<math.h> #include<map> #include<set> #include<algorithm> using namespace std; #define MAXN 201 long long L1[MAXN]; long long L2[MAXN * MAXN]; long long L3[MAXN * MAXN]; int main( ) { int T,N; scanf("%d",&T); while( T-- ) { scanf("%d",&N); for( int i = 1; i <= N; i++) { scanf("%I64d",&L1[i]); } long long t; long long p1 = 0, p2 = 0; for( int i = 1; i <= N; i++) { scanf("%I64d",&t); for( int j = 1; j <= N; j++) { L2[p1++] = L1[j] + t; } } for( int i = 1; i <= N; i++) { scanf("%I64d",&L1[i]); } for( int i = 1; i <= N; i++) { scanf("%I64d",&t); for( int j = 1; j <= N; j++) { L3[p2++] = L1[j] + t; } } sort( L2, L2 + p1 ); sort( L3, L3 + p2 ); p1 = unique(L2, L2 + p1) - L2; p2 = unique(L3, L3 + p2) - L3; for( int i = 1; i <= N; i++) { scanf("%I64d",&L1[i]); } int flag = 0, q1, q2; for( int i = 1; i <= N && !flag; i++) { q1 = 0, q2 = p2; long long temp = -L1[i]; while ( q1 < p1 && q2 >= 0 ) { long long xx = L2[q1] + L3[q2]; if ( xx > temp ) q2--; else if( xx < temp ) q1++; else { flag = 1; break; } } } if( flag ) puts("Yes"); else puts("No"); } return 0; }
相关文章推荐
- hdu 4334 Trouble(哈希)
- hdu 4334 Trouble
- HDU 4334 Trouble (暴力)
- HDU 4334 Trouble
- hdu 4334 Trouble(2012多校联赛4,第3题)
- hdu 4334 Trouble
- (HDU - 4334)Trouble
- HDU 4334 Trouble(哈希表)
- HDU 4334 & BNU 126130 -- Trouble
- HDU 4334 - Trouble
- HDU 4334——Trouble——————【贪心&水题】
- hdu - 4334 - Trouble - 线性查找
- HDU 4334 Trouble 贪心 或 哈希
- hdu 4334 Trouble
- hdu 4334 Trouble
- hdu 4334 Trouble 枚举。。。。
- 哈希 HDU 4334 trouble
- HDU 4334 Trouble
- 枚举+贪心 hdu-4334-Trouble
- HDU 4334 Trouble