博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1496(hash)
阅读量:5340 次
发布时间:2019-06-15

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

/**  hash+数学,很好的题 *  对整数求hash,采用除余法,及线性探测解决冲突 *  注意:devc++中不能定义全局变量count,它和库函数中的函数名同名了 */#include 
#include
#include
using namespace std;const int M = 175447;int counts[M];int result[M];int temp[101];int hashInt(int s) { int k = s % M; if (k < 0) k += M; while (counts[k] && result[k]!=s) k = (k + 1) % M; return k;}int solve(int a, int b, int c, int d) { if (a>0&&b>0&&c>0&&d>0 || a<0&&b<0&&c<0&&d<0) return 0; memset(counts, 0, sizeof(counts)); int s, p, i, j; for (i=1; i<101; ++i) { for (j=1; j<101; ++j) { s = a * temp[i] + b * temp[j]; p = hashInt(s); result[p] = s; ++counts[p]; } } int ans = 0; for (i=1; i<101; ++i) { for (j=1; j<101; ++j) { s = -(c * temp[i] + d * temp[j]); p = hashInt(s); ans += counts[p]; } } return ans;}int main() { int a, b, c, d; for (int i=1; i<101; ++i) temp[i] = i * i; while (scanf("%d%d%d%d", &a, &b, &c, &d) != EOF) { int ans = solve(a, b, c, d); printf ("%d\n", ans<<4); } return 0;}

 

转载于:https://www.cnblogs.com/try86/archive/2012/04/09/2439535.html

你可能感兴趣的文章
[Postgres] Group and Aggregate Data in Postgres
查看>>
[Node.js] Level 5. Express
查看>>
20个有用的正则表达式
查看>>
PTA 02-线性结构3 Reversing Linked List (25分)
查看>>
.Net开源框架列表【转载】
查看>>
(转)Linux内核之进程和系统调用
查看>>
利用 Composer 完善自己的 PHP 框架(二)
查看>>
Go语言的接口interface、struct和组合、继承
查看>>
index-css-添加类-移除类-toggleClass-attr
查看>>
环境配置
查看>>
Linux基础学习
查看>>
SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?...
查看>>
Android 常见的工具类
查看>>
Linux的系统级性能剖析工具-perf
查看>>
改变FileUpload文件上传控件的显示方式,确认后上传
查看>>
二维码Java和Jquery生成方式
查看>>
分支结构
查看>>
Servlet 总结
查看>>
kotlin学习一:kotlin简介
查看>>
virut详细分析
查看>>