poj1840

原创 2012年03月22日 10:56:13
#include<iostream>
using namespace std;

int cube[102];
int a,b,c,d,e,ans,temp;
const int MAX = 12500000;
short arr[2*MAX+1];
int main(){
	cin>>a>>b>>c>>d>>e;
	for(int i=-50;i<=50;i++){
		cube[i+50]=i*i*i;
	}
	memset(arr,0,sizeof(arr));
	for(int x1=-50;x1<=50;x1++){
		if(x1==0)
			continue;
		for(int x2=-50;x2<=50;x2++){
			if(x2==0)
				continue;
			arr[a*cube[x1+50]+b*cube[x2+50]+MAX]++;
		}
	}
	ans=0;
	for(int x3=-50;x3<=50;x3++){
		if(x3==0)
			continue;
		for(int x4=-50;x4<=50;x4++){
			if(x4==0)
				continue;
			for(int x5=-50;x5<=50;x5++){
				if(x5==0)
					continue;
				temp = c*cube[x3+50]+d*cube[x4+50]+e*cube[x5+50];
				if(temp>MAX||temp<-MAX)
					continue;
				ans+=arr[MAX-temp];
			}
		}
	}
	cout<<ans<<endl;	
	return 0;
}

将等式移项,把项数较少的一边结果hash。选择项数较少的可以使hash数组尽可能小,但是项数不能太少,因为另一边项数太多会TLE。

poj1840Eqs(哈希判重)

题目链接: 传送门 思路: 这道题是一个简单的hash的应用,如果直接暴力的话肯定承受不了5重for循环,所以比赛的时候我先到分成两组,但是后来用到了许多数组,然后想到数字太大,还先到stl...
  • u014303647
  • u014303647
  • 2014年08月20日 09:28
  • 1050

poj1840Eqs【散列表】

Description Consider equations having the following form: a1x1 3+ a2x2 3+ a3x3 3+ a4x4 3+ a5x5 3=...
  • zhanzhaozhangxiaoyi
  • zhanzhaozhangxiaoyi
  • 2015年04月25日 18:05
  • 136

POJ 1840 (空间和时间的换)

#include #include using namespace std; static const int MAX = 100000; static int htable[MAX][10]; ...
  • ych_ding
  • ych_ding
  • 2013年09月06日 20:40
  • 444

POJ 1840 Eqs(简单hash入门)

题目链接:http://poj.org/problem?id=1840 CSUST 2012年暑假8月组队后第十二次个人赛:http://acm.hust.edu.cn:8080/judge/c...
  • CSUST_ACM
  • CSUST_ACM
  • 2012年09月06日 19:03
  • 404

poj1840hash

 a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0输入 a1, a2, a3, a4, a5, 问有多少种x1, x2, x3, x4, x5能够满足方程式。 #in...
  • qq_30843195
  • qq_30843195
  • 2016年08月06日 09:13
  • 142

POJ 1840 双向搜索 +Hash

Eqs Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9536   Accepted: ...
  • bean244
  • bean244
  • 2012年12月08日 20:08
  • 246

poj 1840 Eqs

hash的应用,我直接映射了,差点超内存,听说有好的方法,这些数的范围还是很大的,-50^4*2·····50^4*2 ,但是最多才100*100个数,所以可以通过hash函数映射,懒得想了#inc...
  • xiaomajiyue
  • xiaomajiyue
  • 2011年03月09日 15:12
  • 207

poj 1840:Eqs

给定a1,a2,a3,a4,a5,求满足
  • u013898034
  • u013898034
  • 2014年04月20日 03:03
  • 306

1840 poj Eqsa

对于数学表达式,ai,xi的范围[-50,50] 且x不能为0,将表达式变型为 时间复杂度O(10^6) #include using namespace std; int coe...
  • u010329739
  • u010329739
  • 2013年06月14日 22:55
  • 8696

POJ 1840

hash#include #include //#include"iphxer_h.h" #include #include #include using namespace std; ...
  • iphxer
  • iphxer
  • 2011年03月21日 13:02
  • 343
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj1840
举报原因:
原因补充:

(最多只允许输入30个字)