POJ1840Eps

摘要:
我交了两次,所以使用short来定义#include<csdio>#include˂cstring>#include˂iostream>usingspacestd;成分最大值=25000000;短[最大];intmain(){inta,b,c,d,e;scanf;intsum=0;memset;对于{ifcontinue;对于{ifcontinue,对于{ifcontinue;sum=a*x1*x1*x1+b*x2*x2*x2+c*x3*x3;ifsum+=maxn;ch[sum]++;}}}intcount=0;对于{ifcontinue;对于{ifcontinue;sum=d*x4*x4*x4+e*x5*x5*x5;ifsum+=maxn;count+=ch[sum];}}printf;return0;}ViewCode#include<cstio>#include˂cstring>#include˂algorithm>#include˂map>#defineMAXN25000001 usingspacestd;intmain(){inta1,a2,a3,a4,a5;scanf;map<int,int>q;for{if(!

http://poj.org/problem?id=1840

题意 : 有这样一个式子a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0,给你五个系数的值,让你找出x1,x2,x3,x4,x5的值满足这个式子,满足这个式子的方案有多少种输出

思路 : 这个题的话我一开始想的就是暴搜,五个for循环,但肯定会超时啊,问了会神才知道,原来这个题变通一下就行了,既然五个for循环超时那就分开,两个和三个,a1x13+ a2x23+ a3x33= -(a4x43+ a5x53),这样去搜就可以了,哈希表存一下,还有,这个的话,若x4和x5系数和x都是50,那么50*50*50*50+50*50*50*50就等于1250万,再加上负数,所以数组就要开到2500万,用int就会超内存,唉,多么痛的领悟啊!我交了两遍呢,所以用short定义

POJ1840Eps第1张POJ1840Eps第2张
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 25000000;
short ch[maxn] ;
int main()
{
    int a,b,c,d,e ;
    scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
    int sum = 0 ;
    memset(ch,0,sizeof(ch));
    for(int x1 = -50 ; x1 <= 50 ; x1++)
    {
        if( x1 == 0)
        continue ;
        for(int x2 = -50 ; x2 <= 50 ; x2++)
        {
            if(x2 == 0)
            continue ;
            for(int x3 = -50 ; x3 <= 50 ; x3++)
            {
                if(x3 == 0)
                continue ;
                sum = a*x1*x1*x1+b*x2*x2*x2+c*x3*x3*x3 ;
                if(sum < 0)
                sum += maxn ;
                ch[sum] ++ ;
            }
        }
    }
    int count = 0 ;
    for(int x4 = -50 ; x4 <= 50 ; x4++)
    {
        if(x4 == 0)
        continue ;
        for(int x5 = -50 ; x5 <= 50 ; x5++)
        {
            if(x5 == 0)
            continue ;
            sum = d*x4*x4*x4+e*x5*x5*x5 ;
            if(sum < 0)
            sum += maxn ;
            count += ch[sum] ;
        }
    }
    printf("%d
",count) ;
    return 0 ;
}
View Code
POJ1840Eps第3张POJ1840Eps第4张
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#define MAXN 25000001
using namespace std;
int main()
{
    int a1,a2,a3,a4,a5;
    scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5);
    map<int,int>q;
    for(int x1=-50; x1<=50; x1++)
    {
        if(!x1) continue;
        for(int x2=-50; x2<=50; x2++)
        {
            if(!x2) continue;
            int sum=a1*x1*x1*x1+a2*x2*x2*x2;
            if(q.find(sum)==q.end())
            q.insert(pair<int,int>(sum,1));
            else q[sum]++;
        }
    }
    int ans=0;
    for(int x3=-50; x3<=50; x3++)
    {
        if(!x3) continue;
        for(int x4=-50; x4<=50; x4++)
        {
            if(!x4) continue;
            for(int x5=-50; x5<=50; x5++)
            {
                if(!x5) continue;
                int sum=a3*x3*x3*x3+a4*x4*x4*x4+a5*x5*x5*x5;
                if(q.find(sum)==q.end()) continue;
                ans+=q[0-sum];
            }
        }
    }
    printf("%d
",ans);
    return 0;
}
View Code

下面这个是会神用map写的

免责声明:文章转载自《POJ1840Eps》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇POJ1442Black BoxSDUT1574组合数的计算(组合数)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【poor几何】[UVALive 6693]Flow Game计算几何,线代相交

【题目】 Flow game is a p opular game now on smart phone due to the invention of multi-touch screen. The rule of the game is easy. Given a b oard with N × N grids and given a set of pa...

Eqs(hash初步)

Eqs Description: Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-50,50]. It is co...

递归方法巧解不定方程(二)

笔者在2004年曾写过一篇 递归方法巧解不定方程 。昨天在一位网友的启发下,对代码进行了重写,使其能够设置每个变量的取值范围。代码如下 Private Sub Command1_Click()Dim min(1 To 5) As Integer, max(1 To 5) As Integer, RESULTmin(1) = 2min(2) = 3max(1)...

XML系列之--创建电文格式的XML(一)

     关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作。趁此契机好好回顾下XML知识。      XML作为一种可扩展的标记语言,可以一种简单文本格式存储数据的方式,被任何计算机读取。非常灵活。标准的XML格式(分层组织)是包含...

《DSP using MATLAB》Problem 4.8

代码: %% ---------------------------------------------------------------------------- %% Output Info about this m-file fprintf(' ****************************************...

POJ 2954

PICK定理:格子上的多边形面积=边界上格子点数/2+内部点数-1。 利用叉积求出面积。再枚举边上的点数。然后按公式求出内部点数就可以了。 关于PICK:http://blog.csdn.net/i_fuqiang/article/details/9817343 #include <iostream> #include <cstdio&...