POJ 1840 Eps 解题报告(哈希)
a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0,xi∈[-50,50],且xi!=0。让我们求所有解的可能。
首先,如果暴力判断的话,每个x的取值有100种可能,100^5肯定会超时。
我们可以枚举x1,x2的值,并且记录下来。再枚举x3,x4,x5的值。如果发现有互为相反数的,说明有一个解存在。复杂度却大大降低了。
当然,我们可以只处理正数的情况。如果存在一组解,x1,x2,x3,x4,x5,那么容易证明-x1,-x2,-x3,-x4,-x5也是一组解。
我们只记录a1x13+ a2x23>0的情况,如果发现有相等的a3x33+ a4x43+ a5x53,解的数量应该增加2个。
经过优化,笔者的代码在POJ上 94MS 完成。代码如下:
#include <cstdio>
#include <cstring>
#include <map>
using namespace std; unsigned char mp[]; int main()
{
// freopen("in.txt","r",stdin);
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); int calThird[];
for(int i=-;i<=;i++)
calThird[i+]=i*i*i; int zero=;
for(int i=-;i<=;i++) if(i)
for(int k=-;k<=;k++) if(k)
{
int res=a*calThird[i+]+b*calThird[k+];
if(res==)
zero++;
else if(res>)
{
mp[res]+=;
}
} int count=;
for(int i=-;i<=;i++) if(i)
for(int k=-;k<=;k++) if(k)
for(int j=-;j<=;j++) if(j)
{
int res=c*calThird[i+]+d*calThird[k+]+e*calThird[j+];
if(res==)
count+=zero;
else if(res> && res<=)
count+=mp[res];
} printf("%d\n",count);
}
POJ 1840 Eps 解题报告(哈希)的更多相关文章
- POJ 2002 Squares 解题报告(哈希 开放寻址 & 链式)
经典好题. 题意是要我们找出所有的正方形.1000点,只有枚举咯. 如图,如果我们知道了正方形A,B的坐标,便可以推测出C,D两点的坐标.反之,遍历所有点作为A,B点,看C,D点是否存在.存在的话正方 ...
- 【原创】poj ----- 1182 食物链 解题报告
题目地址: http://poj.org/problem?id=1182 题目内容: 食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submi ...
- poj 2051.Argus 解题报告
题目链接:http://poj.org/problem?id=2051 题目意思:题目有点难理解,所以结合这幅图来说吧---- 有一个叫Argus的系统,该系统支持一个 Register 命令,输入就 ...
- poj 1102.LC-Display 解题报告
题目链接:http://poj.org/problem?id=1102 题目意思:就是根据给出的格式 s 和 数字 n,输出数值 n 的 LCD 显示.数值 n 的每个数字要占据 s + 2 列 和 ...
- poj 1363 Rails 解题报告
题目链接:http://poj.org/problem?id=1363 题意:有一列火车,车厢编号为1-n,从A方向进站,向B方向出站.现在进站顺序确定,给出一个出站的顺序,判断出站顺序是否合理. 实 ...
- POJ 3159 Candies 解题报告(差分约束 Dijkstra+优先队列 SPFA+栈)
原题地址:http://poj.org/problem?id=3159 题意大概是班长发糖果,班里面有不良风气,A希望B的糖果不比自己多C个.班长要满足小朋友的需求,而且要让自己的糖果比snoopy的 ...
- poj 1201 Intervals 解题报告
Intervals Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu Submit Statu ...
- POJ P1741 Tree 解题报告
Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Def ...
- poj 1469 COURSES 解题报告
题目链接:http://poj.org/problem?id=1469 题目意思:有 N 个人,P个课程,每一个课程有一些学生参加(0个.1个或多个参加).问 能否使得 P 个课程 恰好与 P 个学生 ...
随机推荐
- From MSI to WiX, Part 2 - ARP support, by Alex Shevchuk
Following content is directly reprinted from From MSI to WiX, Part 2 - ARP support Author: Alex Shev ...
- OpenJudge/Poj 2000 Gold Coins
1.链接地址: http://bailian.openjudge.cn/practice/2000 http://poj.org/problem?id=2000 2.题目: 总Time Limit: ...
- WPF异步调用WCF服务
wpf调用wcf时,第一次访问总耗时到达几秒,影响界面的用户体验,因此在wpf加载界面和加载数据时采用异步加载,即异步访问wcf服务, 由于是否采用异步加载和服务端无关,仅仅由客户端自己根据需要来选择 ...
- python【第五篇】常用模块学习
一.主要内容 模块介绍 time &datetime模块 random os sys shutil json & pickle shelve xml处理 yaml处理 configpa ...
- 【加密】RSA加密之实现
private void btn_RSA_Click(object sender, EventArgs e) { //第一种方法调用 this.textBox1.Text = RSAEncrypt(& ...
- EventLog组件
1.使用EventLog组件读写事件日志 SourceExists方法 确定事件源是否已在本地计算机上注册 DeleteEventSource方法 用于从事件日志中移除应用程序的事件源注册 pri ...
- 9.MVC框架开发(关于ActionResult的处理)
1.在Action处理之后,必须有一个返回值,这个返回值必须继承自ActionResult的对象 2.ActionResult,实际就是服务器端响应给客户端的结果 ViewResult(返回视图结果) ...
- VisualStudio自定义代码段_方法二
1.在项目中新增一个xml文件为vcoo.snippet,然后右键“插入代码段”,选择Snippet即可: 2.修改代码片段内容后保存: 3.VS菜单中选择“工具”-“代码段管理器”导入这个snipp ...
- mvc razor页面的邮箱校验
由于@符号是razor中的关键字,而邮箱校验的正则表达式中需要使用@符号,所以在cshtml页面的代码中直接写js代码进行邮箱校验会报错. 解决方案: 将邮箱校验写在js文件中,在cshtml文件中引 ...
- 关于oi
2015-12-26 今天在机房,楼上的孩子发下来一个exe,善良无知的我打开了那个exe,然后电脑就关机了.萌萌的辅导老师看到之后就不再萌萌哒,他跑到五楼训斥了那群孩子们一顿(自行脑补).出于报复, ...