POJ Eps(1840)-分组&枚举
来源:互联网 发布:狼顾之相真存在么 知乎 编辑:程序博客网 时间:2024/05/08 17:50
题意:给定系数,求a1*x1^3+a2*x2^3+a3*x3^3+a4*x4^3+a5*x5^3 = 0方程式解的个数。 系数和x范围都是[-50, 50]但不包括0。
暴力解:上式转化为-(a1*x1^3+a2*x2^3) = a3*x3^3+a4*x4^3+a5*x5^3,
循环层数就变为3层,空间复杂度100^3,并且和为负数的时候加上25000000,
要建一个short cnt[25000001],用int空间不够;
#define INF 0x7fffffff#define eps (1e-9)#define clearto(s,x) memset(s,x,sizeof(s))#define prime 999983#define maxn 100010using namespace std;typedef long long llong;int n,m,t,tot=0;short cnt[25000001];int cube[110];int main(){ //freopen("D:\data.txt","r",stdin); int TT,i,j,k; int a1,a2,a3,a4,a5; for(i=-50;i<=50;i++) cube[i+50] =i*i*i; while(~scanf("%d %d %d %d %d",&a1,&a2,&a3,&a4,&a5)){ clearto(cnt,0); for(i=-50;i<=50;i++){ if(i==0) continue; for(j=-50;j<=50;j++){ if(j==0) continue; int sum = (-1)*(a1*cube[i+50]+a2*cube[j+50]); if(sum<0) sum+= 25000000; cnt[sum]++; } } int sum,ans =0; for(i=-50;i<=50;i++){ if(i==0) continue; for(j=-50;j<=50;j++){ if(j==0) continue; for(k=-50;k<=50;k++){ if(k==0) continue; sum= a3*cube[i+50]+a4*cube[j+50]+a5*cube[k+50]; if(sum<0) sum+=25000000; if(cnt[sum]) ans+=cnt[sum]; } } } printf("%d\n",ans); } return 0;}
0 0
- POJ Eps(1840)-分组&枚举
- poj 1840 eps
- POJ 1840 Eps 简单Hash
- poj 1840 枚举
- Eps
- EPS
- EPS
- EPS
- 【扩展学习wiki】EPS: Evolved Packet System演进分组系统
- POJ 1840 Eqs(枚举+HASH)
- [POJ 1840]Eqs[hash][枚举]
- POJ 1840 ——Eqs 哈希,枚举
- POJ 1840 Eqs 折半枚举、hash
- poj 1840 Eqs(暴力枚举+hash)
- poj 1837分组背包
- poj 3046 分组背包
- poj 1712 分组背包
- 分组背包 poj 1837
- EBS 在制资源待定事务处理(制造成本工作流程\资源成本工作流程)报错
- poj3070
- FOJ1455
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
- java基础加强:泛型
- POJ Eps(1840)-分组&枚举
- 如何保证socket长连接
- tomcat出现闪屏现象的原因以及解决方法总结
- http://ikrboy.iteye.com/blog/2007046
- C++内存管理
- iOS 第一天 推送遇到的一些零碎问题
- linux下python开发环境之一——安装python
- C#练习DataReader
- 黑马程序——Gridview的认识