博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1840 Eqs Hash
阅读量:5236 次
发布时间:2019-06-14

本文共 1376 字,大约阅读时间需要 4 分钟。

 

/*DescriptionConsider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=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. InputThe only line of input contains the 5 coefficients a1, a2, a3, a4, a5, separated by blanks.OutputThe output will contain on the first line the number of the solutions for the given equation.Sample Input37 29 41 43 47Sample Output654*///目测是最近写的最短的代码,500ms 3900K飘过,有卡BUG嫌疑//题目很水//就是给你5个数计算一个等式成立的解的个数//放入hash中判断一下,计算数目就行#include
#include
using namespace std;const int MAX = 20000000;char hash[40000000]; //这里是关键,用char比short节约1半内存,否则直接超内存,尼玛我从int改short再改char才过int main(){// freopen("in.txt","r",stdin); memset(hash,0,sizeof(hash)); int sum=0,i,j,k; int a1,a2,a3,a4,a5; cin >> a1 >> a2 >> a3 >> a4 >> a5 ; //前半段 for(i = -50 ; i <= 50 ; i++) for(j = -50 ; j <= 50 ; j++) if(i!=0 && j!=0) hash[i*i*i*a1 + j*j*j*a2 + MAX]++; //后半段 for(i = -50 ; i <= 50 ; i++) for(j = -50 ; j <= 50 ; j++) for(k = -50 ; k <= 50 ;k++) if(i!=0 && j!=0 && k!=0) sum+=hash[i*i*i*a3 + j*j*j*a4 + k*k*k*a5 + MAX]; cout << sum << endl; return 0;}

转载于:https://www.cnblogs.com/Felix-F/archive/2012/03/14/3223696.html

你可能感兴趣的文章
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>