Eqs(sort+二分)
来源:互联网 发布:ubuntu和windows共存 编辑:程序博客网 时间:2024/06/05 06:07
I - Eqs
Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uAppoint description:
Description
Consider equations having the following form:
a1x1 3+ a2x2 3+ a3x3 3+ a4x4 3+ a5x5 3=0
The coefficients are given integers from the interval [-50,50].
It is consider a solution a system (x1, x2, x3, x4, x5) that verifies the equation, xi∈[-50,50], xi != 0, any i∈{1,2,3,4,5}.
Determine how many solutions satisfy the given equation.
a1x1 3+ a2x2 3+ a3x3 3+ a4x4 3+ a5x5 3=0
The coefficients are given integers from the interval [-50,50].
It is consider a solution a system (x1, x2, x3, x4, x5) that verifies the equation, xi∈[-50,50], xi != 0, any i∈{1,2,3,4,5}.
Determine how many solutions satisfy the given equation.
Input
The only line of input contains the 5 coefficients a1, a2, a3, a4, a5, separated by blanks.
Output
The output will contain on the first line the number of the solutions for the given equation.
Sample Input
37 29 41 43 47
Sample Output
654
这题是简单的二分题,没什么难度的。
AC代码:
#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>#include<vector>#include<cmath>using namespace std;#define T 105#define inf 0x3f3f3f3f#define CRL(a) memset(a,inf,sizeof(a))typedef long long ll;int a1,a2,a3,a4,a5;vector<int> n,m;int main(){/*freopen("input.txt","r",stdin);*/int x1,x2,x3,x4,cnt,c=0;while(~scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5)){cnt=0;n.clear(),m.clear();for(x1=-50;x1<=50;++x1)if(x1)for(x2=-50;x2<=50;++x2)if(x2)for(x3=-50;x3<=50;++x3)if(x3){n.push_back(a1*x1*x1*x1+a2*x2*x2*x2+a3*x3*x3*x3);}for(x4=-50;x4<=50;++x4)if(x4)for(int x5=-50;x5<=50;++x5){if(x5)m.push_back(a4*x4*x4*x4+a5*x5*x5*x5);}sort(n.begin(),n.end());for(int i=0;i<m.size();++i){cnt+=upper_bound(n.begin(),n.end(),-m[i])-lower_bound(n.begin(),n.end(),-m[i]);}printf("%d\n",cnt);}return 0;}
网上大牛代码(hash):
#include <stdio.h>#include <string.h>short hash[25000001];int main(){ int a1,a2,a3,a4,a5,x1,x2,x3,x4,x5,sum; while(~scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5)) { memset(hash,0,sizeof(hash)); for(x1 = -50; x1<=50; x1++) { if(!x1) continue; for(x2 = -50; x2<=50; x2++) { if(!x2) continue; sum = -1*(a1*x1*x1*x1+a2*x2*x2*x2); if(sum<0) sum+=25000000;//数字下标没有负数,换一种出储存方式 hash[sum]++; } } int cnt = 0; for(x3 = -50; x3<=50; x3++) { if(!x3) continue; for(x4 = -50; x4<=50; x4++) { if(!x4) continue; for(x5 = -50; x5<=50; x5++) { if(!x5) continue; sum = a3*x3*x3*x3+a4*x4*x4*x4+a5*x5*x5*x5; if(sum<0) sum+=25000000; cnt+=hash[sum]; } } } printf("%d\n",cnt); } return 0;}
0 0
- Eqs(sort+二分)
- poj_1840 Eqs(二分查找 / 哈希)
- poj 1840 Eqs(二分)
- hrbust 1013 Eqs【二分】
- POJ1840 Eqs(hash)
- Eqs(hash初步)
- POJ1840:Eqs(Hash)
- poj1840 Eqs(哈希表)
- Eqs
- Sort 二分 + (队列 + sort 代替优先队列)
- HDU 5884-Sort(队列+二分)
- hdu 5884 Sort(二分+哈夫曼树(队列))
- [BZOJ2083][Poi2010]Intelligence test(sort+二分)
- POJ 1840 Eqs(哈希)
- poj-1840 Eqs(hash)
- Poj 1840 Eqs(Hash)
- (POJ 1840)Eqs 哈希表
- POJ 1840Eqs(hash)
- 【软件设计】软件设计特性
- 主题下载网站
- Yii查询生成器(Query Builder)用法实例教程
- L0,L1,L2范数
- OSI分层简介
- Eqs(sort+二分)
- 初学cocos2dx lua 最基本的知识
- luaintf的多线程一个隐藏bug,库中的变量没有加锁
- 我心依旧之Android Camera模块FW/HAL3探学序
- 文章标题
- spring mvc声明表结构
- winform程序安装了各版本framework依然报错的情况下
- javascript,检测对象中是否存在某个属性
- Fragment的生命周期权威版