hdu 4334 Trouble
2012-08-03 15:24
453 查看
这题比赛的时候不是TLE就是是MLE,各种蛋疼……尝试了hash , 二分查找,map都TLE了
比完赛,发现时我们的hash有一点写错了,改完就ac了
比完赛,发现时我们的hash有一点写错了,改完就ac了
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; ll set[5][210]; ll tab[400010]; const int mm=1000007; struct HashTbale { int size,h[mm],p[44444]; ll s[44444]; void insert(ll x) { int i,id=(x%mm+mm)%mm; // 比赛的后就错在这了,写成了 id=x%mm 万一x为负数,那么id也为负数了 for(i=h[id];i>=0;i=p[i]) if(s[i]==x)return; s[size]=x,p[size]=h[id],h[id]=size++; return ; } int find(ll x) { int i,id=(x%mm+mm)%mm; for(i=h[id];i>=0;i=p[i]) if(s[i]==x)return 1; return 0; } void clear() { size=0; memset(h,-1,sizeof(h)); } }g; int main() { int ca,n,cas=1; scanf("%d",&ca); while(ca--) { scanf("%d",&n); for(int i=0;i<5;i++) for(int j=0;j<n;j++) { scanf("%I64d",&set[i][j]); if(i>=2) set[i][j]=-set[i][j]; } g.clear(); int cnt=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { tab[cnt++]=set[0][i]+set[1][j]; g.insert(set[0][i]+set[1][j]); } sort(tab,tab+cnt); int k=1; for(int i=1;i<cnt;i++) if(tab[i]!=tab[k-1]) tab[k++]=tab[i]; sort(set[2],set[2]+n); sort(set[3],set[3]+n); sort(set[4],set[4]+n); bool ok=1; for(int i=0;i<n&&ok;i++) { if(set[2][i]+set[3][n-1]+set[4][n-1]>=tab[0]&&set[2][i]+set[3][0]+set[4][0]<=tab[k-1]) for(int j=0;j<n&&ok;j++) if(set[2][i]+set[3][j]+set[4][n-1]>=tab[0]&&set[2][i]+set[3][j]+set[4][0]<=tab[k-1]) for(int r=0;r<n&&ok&&(set[2][i]+set[3][j]+set[4][r])<=tab[k-1];r++) if((set[2][i]+set[3][j]+set[4][r])>=tab[0]&&g.find(set[2][i]+set[3][j]+set[4][r])) ok=0; } puts(ok?"No":"Yes"); } 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