POJ - 1840 - уравнения = мышление

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

Смысл проблем: поиск \ (a_1x_1 ^ 3 + a_2x_2 ^ 3 + a_3x_3 ^ 3 + a_4x_4 ^ 3 + a_5x_5 ^ 3 = 0 \) целочисленное решение, где значения всех переменных \ ([- 50,50] \ ) и \ (x_i \ NEQ 0 \)

Перечень насилия, но, как два с половиной это? Факты доказали, что первая половина 2 очка, 3 очка второй половины будет лучше, и почему?

Это, вероятно , является более \ (\ log_ {2} { 100} \) оно, почти в 7 раз константа.

Первая половина двух является:
\ (. О (п-2 ^ \ лог (п-2 ^) + п ^ 3 \ лог (п-2 ^)) \)

Первая половина 6:57 раз больше попусту постоянная, чем это смешно.

К сожалению POJ не принимать unordered_map, будет из хэша почерка смотреть?

#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<map>
#include<set>
#include<stack>
#include<string>
#include<queue>
#include<vector>
using namespace std;
typedef long long ll;

map<int, int> M;

int main() {
#ifdef Yinku
    freopen("Yinku.in", "r", stdin);
#endif // Yinku
    int a1, a2, a3, a4, a5;
    scanf("%d%d%d%d%d", &a1, &a2, &a3, &a4, &a5);
    for(int x1 = -50; x1 <= 50; ++x1) {
        if(x1 == 0)
            continue;
        int p1 = a1 * x1 * x1 * x1;
        for(int x2 = -50; x2 <= 50; ++x2) {
            if(x2 == 0)
                continue;
            int p2 = a2 * x2 * x2 * x2;
            M[p1 + p2]++;
        }
    }
    ll ans = 0;
    for(int x3 = -50; x3 <= 50; ++x3) {
        if(x3 == 0)
            continue;
        int p3 = a3 * x3 * x3 * x3;
        for(int x4 = -50; x4 <= 50; ++x4) {
            if(x4 == 0)
                continue;
            int p4 = a4 * x4 * x4 * x4;
            for(int x5 = -50; x5 <= 50; ++x5) {
                if(x5 == 0)
                    continue;
                int p5 = a5 * x5 * x5 * x5;
                map<int, int>::iterator it = M.find(-p3 - p4 - p5);
                if(it != M.end())
                    ans += it->second;
            }
        }
    }
    printf("%lld\n", ans);
}

рекомендация

отwww.cnblogs.com/Inko/p/11729194.html