博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU_1496 Equations && POJ_1840 Eqs(Hash)
阅读量:5977 次
发布时间:2019-06-20

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

  这两题的思路都是将等式化成左右两部分,用一个hash数组,先把左边的结果存起来,然后计算右边的结果直接寻址就行,不过,HDU那道题要注意剪枝,如果系数全为正或者全为负则直接输出0,POJ那道题hash函数定义成char型的,否则会超内存。。

    

HDU_1496 Equations:

#include 
#include
#include
using namespace std; const int N = 2000009; int hash[N]; int main() {
//freopen("data.in", "r", stdin); int a, b, c, d, i, j; while(scanf("%d%d%d%d", &a, &b, &c, &d) != EOF) {
if((a > 0 && b > 0 && c > 0 && d > 0) || (a < 0 && b < 0 && c < 0 && d < 0)) { printf("0\n"); continue;} memset(hash, 0, sizeof(hash)); for(i = 1; i <= 100; i++) for(j = 1; j <= 100; j++) hash[1000000 + a*i*i + b*j*j]++; int sum = 0; for(i = 1 ; i <= 100; i++) for(j = 1; j <= 100; j++) if(hash[1000000 - c*i*i - d*j*j]) sum += hash[1000000 - c*i*i - d*j*j]; printf("%d\n", sum*16); } return 0; }

 POJ_1840 Eqs:

#include 
#include
#include
using namespace std; const int N = 25000007; char hash[N]; //!!! int main() {
//freopen("data.in", "r", stdin); int a, b, c, d, e, i, j, k; while(scanf("%d%d%d%d%d", &a, &b, &c, &d, &e) != EOF) {
memset(hash, 0, sizeof(hash)); for(i = -50; i <= 50; i++) {
if(i == 0) continue; for(j = -50; j <= 50; j++) {
if(j == 0) continue; hash[12500000 + a*i*i*i + b*j*j*j]++; } } int sum = 0; for(i = -50; i <= 50; i++) {
if(i == 0) continue; for(j = -50; j <= 50; j++) {
if(j == 0) continue; for(k = -50; k <= 50; k++) {
if(k == 0 || 12500000 < c*i*i*i + d*j*j*j + e*k*k*k || -12500000 > c*i*i*i + d*j*j*j + e*k*k*k) continue; sum += hash[12500000-c*i*i*i-d*j*j*j-e*k*k*k]; } } } printf("%d\n", sum); } return 0; }

转载地址:http://ytsox.baihongyu.com/

你可能感兴趣的文章
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>