zoukankan      html  css  js  c++  java
  • poj1840Eqs(hash)

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

    枚举 xi不等0.

    View Code
     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 #define MOD 97777
     6 #define size 1000010
     7 int t,head[size],next[size],v[size],num[size][2];
     8 void init()
     9 {
    10     t =0 ;
    11     memset(head,-1,sizeof(head));
    12 }
    13 void add(int a,int b)
    14 {
    15     next[t] = head[a];
    16     head[a] = t;
    17     v[t] = b;
    18     t++;
    19 }
    20 int main()
    21 {
    22     int i,j,k,a[6],s,g=0;
    23     init();
    24     for(i = 1; i <= 5 ; i++)
    25     cin>>a[i];
    26     for(i = -50; i <= 50 ;i++)
    27     {
    28         if(i==0)
    29         continue;
    30         for(j = -50; j <= 50 ; j++)
    31         {
    32             g++;
    33             if(j==0)
    34             continue;
    35             s = a[1]*(i*i*i)+a[2]*(j*j*j);
    36             s = s%MOD;
    37             if(s<0)
    38             s+=MOD;
    39             num[g][0] = i;
    40             num[g][1] = j;
    41             add(s,g);
    42         }
    43     }
    44     int sum = 0,o,ss;
    45     for(i = -50 ; i <= 50 ; i++)
    46     {
    47         if(i==0)
    48         continue;
    49         for(j = -50 ; j <= 50 ; j++)
    50         {
    51             if(j==0)
    52             continue;
    53             for(k = -50 ; k <= 50 ; k++)
    54             {
    55                 if(k==0)
    56                 continue;
    57                 s = a[3]*(i*i*i)+a[4]*(j*j*j)+a[5]*(k*k*k);
    58                 ss = s;
    59                 s = (-s)%MOD;
    60                 if(s<0)
    61                 s += MOD;
    62                 for(o = head[s] ; o!=-1 ; o = next[o])
    63                 {
    64                     int i1 = num[v[o]][0],i2 = num[v[o]][1];
    65                     if((a[1]*(i1*i1*i1)+a[2]*(i2*i2*i2))==-ss)
    66                          sum++;
    67                 }
    68             }
    69         }
    70     }
    71     cout<<sum<<endl;
    72     return 0;
    73 }
  • 相关阅读:
    join()方法的使用
    synchronized关键字
    voliatle关键字
    一.线程概述
    NIO demo
    同步阻塞I/O
    Ubuntu16.04.1 安装Nginx
    垃圾收集
    如何从头开始安装 wordpress
    centos 6 安装 gnu c++ 等开发工具
  • 原文地址:https://www.cnblogs.com/shangyu/p/2871712.html
Copyright © 2011-2022 走看看