poj 1840 暴力+标记
2015-07-18 00:03
405 查看
---恢复内容开始---
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.
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
Sample Output
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <map>
#include <stack>
#define inf 0xfffff
typedef long long ll;
using namespace std;
#define MAXN 25000000
#define mod 10007
#define eps 1e-9
short hash[25000001];
int main()
{
int a1,a2,a3,a4,a5;
while(scanf("%d %d %d %d %d",&a1,&a2,&a3,&a4,&a5)!=EOF)
{
int sum=0;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
for(int k=-50; k<=50; k++)
{
if(i==0||j==0||k==0)
continue;
if(a1*i*i*i+a2*j*j*j+a3*k*k*k<0)
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k+MAXN]++;
else
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k]++;
// cout<<a[q]<<endl;
}
//cout<<q<<endl;
// cout<<a[999999]<<endl;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
{
int u=0-a4*i*i*i-a5*j*j*j;
if(u<0)
u=u+MAXN;;
if(hash[u]&&i!=0&&j!=0)
{
sum+=hash[u];
}
}
printf("%d\n",sum);
}
return 0;
}
---恢复内容结束---
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.
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 暴力+标记
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <map>
#include <stack>
#define inf 0xfffff
typedef long long ll;
using namespace std;
#define MAXN 25000000
#define mod 10007
#define eps 1e-9
short hash[25000001];
int main()
{
int a1,a2,a3,a4,a5;
while(scanf("%d %d %d %d %d",&a1,&a2,&a3,&a4,&a5)!=EOF)
{
int sum=0;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
for(int k=-50; k<=50; k++)
{
if(i==0||j==0||k==0)
continue;
if(a1*i*i*i+a2*j*j*j+a3*k*k*k<0)
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k+MAXN]++;
else
hash[a1*i*i*i+a2*j*j*j+a3*k*k*k]++;
// cout<<a[q]<<endl;
}
//cout<<q<<endl;
// cout<<a[999999]<<endl;
for(int i=-50; i<=50; i++)
for(int j=-50; j<=50; j++)
{
int u=0-a4*i*i*i-a5*j*j*j;
if(u<0)
u=u+MAXN;;
if(hash[u]&&i!=0&&j!=0)
{
sum+=hash[u];
}
}
printf("%d\n",sum);
}
return 0;
}
---恢复内容结束---
相关文章推荐
- python 移动指定目录下的txt文件到另外的目录
- Beginning iOS Programming
- Entity Framework 6 主表和从表的事务插入方式
- Scrot:让你在命令行中进行截屏更加简单
- ASP.NET中将声音文件添加到资源中并进行播放的方法
- 详解Django中的form库的使用
- 在Django的视图中使用form对象的方法
- 在Django的form中使用CSS进行设计的方法
- 在Django的URLconf中进行函数导入的方法
- 在Django的URLconf中使用多个视图前缀的方法
- 在Django的URLconf中使用命名组的方法
- Django中传递参数到URLconf的视图函数中的方法
- 在Django框架中伪造捕捉到的URLconf值的方法
- Python的Django框架中URLconf相关的一些技巧整理
- Django的URLconf中使用缺省视图参数的方法
- Python通过正则表达式选取callback的方法
- Python字符串匹配算法KMP实例
- python通过socket查询whois的方法
- PHP+Javascript实现在线拍照功能实例
- PHP封装的Twitter访问类实例