zoukankan      html  css  js  c++  java
  • poj1840

    题意:求解五元三次方程在[-50,50]内的非零整数解
    a*x1^3+b*x2^3+c*x3^3+d*x4^3+e*x5^3=0

    求解的个数

    首先想法:枚举

    但是100^5,呵呵...

    所以可以将方程变形:
    c*x3^3+d*x4^3+e*x5^3=-a*x1^3-b*x2^3

    这样,只要先预处理-a*x1^3-b*x2^3的个数,让后用数组存下来

    对于负数,直接加上25000000即可,注意数组不要用int会报空间,可以用short

    让后暴力枚举x3,4,5即可

    #include<stdio.h>
    #include<string.h>
    #define N 25000000
    #define sqr(X) (X*X*X)
    #define rep(i,l,r) for(int i=l;i<=r;++i)
    short s[25000001];
    int a,b,c,d,e,cnt=0;
    inline int rp(int x){
    	if(x<0) x+=N;
    	return x;
    }
    int main(){
    	for(;~scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);cnt=0){
    		memset(s,0,sizeof s);
    		rep(i,-50,50) if(i)
    		rep(j,-50,50) if(j) s[rp(-sqr(i)*a-sqr(j)*b)]++;
    		rep(i,-50,50) if(i)
    		rep(j,-50,50) if(j)
    		rep(k,-50,50) if(k) cnt+=s[rp(sqr(i)*c+sqr(j)*d+sqr(k)*e)];
    		printf("%d
    ",cnt);
    	}
    }


  • 相关阅读:
    HDU 1068
    hdu6447
    HDU 6438
    网络赛的个人反思总结
    Bellman-ford 模板
    Pairs Forming LCM LightOJ
    POJ
    链式前向星
    POJ 3281 Dining
    游标遍历所有数据库循环执行修改数据库的sql命令
  • 原文地址:https://www.cnblogs.com/Extended-Ash/p/9477379.html
Copyright © 2011-2022 走看看