[题目来源]:POJ1840

[关键字]:Hash

[题目大意]:给出形如:a1*x1^3+a2*x2^3+a3*x3^3+a4*x4^3+a5*x5^3=0的方程求其一共有多少解。

//===========================================================================================================

[分析]:原始得朴素思想是枚举前4个值然后判断,如果是解就加一。但如此必超时无疑,所以可以将其拆成两部分,要想成立必有前一部分的值等于后一部分的值的的相反数。枚举实际上就是把一部分的值和后一部分的每一个值比较查找符合条件的值。而要想加快就必须在查找上优化——Hash!先枚举下你两个x的值存入Hash表,再枚举后三个的值进行查找。

[代码]:

View Code

 1 program Project1; 2 var 3   a: array[0..10] of longint; 4   t: array[-50..50] of longint; 5   num: array[-20000..20000] of longint; 6   h: array[-20000..20000,0..20] of longint; 7  8 function hash(x: longint):longint; 9 begin10   hash := x mod 15988;11 end;12 13 procedure init;14 var15   i: longint;16 begin17   for i := 1 to 5 do read(a[i]);18 end;19 20 procedure work;21 var22   i, j, k, i1, i2, i3, ans, tot: longint;23 begin24   tot := 0;25   for i := -50 to 50 do26     t[i] := i*i*i;27   for i := -50 to 50 do28     for j := -50 to 50 do29       if (i <> 0) and (j <> 0) then30         begin31           ans := a[1]*t[i]+a[2]*t[j];32           k := hash(ans);33           //writeln(k);34           inc(num[k]);35           h[k,num[k]] := ans;36         end;37   for i1 := -50 to 50 do38     for i2 := -50 to 50 do39       for i3 := -50 to 50 do40         if (i1 <> 0) and (i2 <> 0) and (i3 <> 0) then41           begin42             ans := a[3]*t[i1]+a[4]*t[i2]+a[5]*t[i3];43             ans := -ans;44             k := hash(ans);45             for j := 1 to num[k] do46               if h[k,j] = ans then inc(tot);47           end;48   writeln(tot);49 end;50 51 begin52   init;53   work;54 end.

转载于:https://www.cnblogs.com/procedure2012/archive/2011/10/18/2216794.html

[POJ1840 Eqs]相关推荐

  1. POJ-1840 Eqs Hash

    题目大意: 有以下等式:a1*x13+a2*x23+a3*x33+a4*x43+a5*x53=0.x1,x2,x3,x4,x5都就在区间[-50,50]之间的整数,且x1,x2,x3,x4,x5都不等 ...

  2. POJ-1840 Eqs Hash表

    不得不说上次看得的这句话是多么对,再差的Hash表都比map好,hash表的查找速度可不是logn能够比的. 首先将5个部分拆成2+3,我们选取2的部分进行hash,然后再进行3重for循环. 动态申 ...

  3. UE4学习笔记--EQS系统

    最近在研究虚幻4引擎的EQS系统,看了下官方对EQS的解释文档(官方文档链接:https://docs.unrealengine.com/en-US/Engine/ArtificialIntellig ...

  4. Unreal - Environment Query System(EQS)

    文章目录 什么是EQS 形成测试点 评分 标准化 什么是EQS 在指定区域内形成测试点 根据环境(战场情况)对每个测试点做出评分,最后选出一个评分最高的点 结果:提供下一次Do Something的较 ...

  5. 虚幻引擎(UE4) 环境问询系统EQS

    EQS,全称Environment Query System,翻译过来是环境询问系统.官方给出的解释是,虚幻4中提供给AI,用于收集游戏当前的环境数据,进行筛选分析,寻找到最符合条件要求的结果. 假如 ...

  6. matlab eqs,EQS(奔驰eqs什么时候上市)

    均布,equally spaced,简称eqs.孔.槽等均匀分布时,不必逐个标注尺寸,在尺寸后注明"eqs"即可. 工程制图时,当组成要素(如大量的孔,槽等)相同且均匀分布时,可不 ...

  7. 22_ue4进阶末日生存游戏开发[EQS]

    EQS:环境查询系统 功能:1.按照规则生成点 2.跟踪搜寻目标 3.过滤目标 打开编辑器偏好设置 搜索eqs 我们得打勾 有什么变化呢? 创建AI的时候,出现了一个eqs 创建一个eps 进去之后, ...

  8. 虚幻C++入门个人笔记(3)——接口、智能指针、动画蓝图、行为树、EQS系统

    接口 接口的词义广泛,用来陈述功能.选项,与其他程序结构进行沟通的方式.接口抽象出了交互结构,提供了两个未知逻辑交互的便捷性.对于编程中,如何更好地设计低耦合程序起到了至关重要的作用.设计者可以在互不 ...

  9. UE4 简单记录EQS的使用方法

    介绍 EQS环境查询 主要是用来从场景环境中获得你想要的满足指定条件的数据,主要是和AI行为树配合使用, 比如获得获得玩家距离最近的位置等等 详细的官网文档 链接 下面是简单的使用方法,目的是寻找一个 ...

最新文章

  1. 使用C#格式化字符串 1
  2. html小球跳跃技术原理,弹跳的小球.html · web-project-songyu/原生js小例子 - Gitee.com...
  3. 【渝粤教育】21秋期末考试服务标准化10011k1
  4. python 从入门到实践_Python编程从入门到实践日记Day15
  5. 得到选择框句柄 怎么操作_电脑版微信怎么多开?最简单的三种电脑版微信多开教程...
  6. 四年级计算机课程,信息技术(四年级)全部课程PPT课件.ppt
  7. python 添加图例_Python | 在图例标签中添加Sigma
  8. Java网络编程之NIO编程(待补充)
  9. elixir 关键字列表
  10. 图像处理基本概念、术语
  11. hibernate Day1 案例代码
  12. 学习LoadRunner之C语言函数
  13. 爬虫练习--爬取CNNVD相关漏洞
  14. 【渝粤教育】电大中专跨境电子商务理论与实务 (32)作业 题库
  15. php里pluck,pluck - 内容管理CMS - PHP开源项目 - 开源吧
  16. “有幸笔墨是小舟 任我自在游”在林曦的小世界里每日滋养自己
  17. TP5 在西部数码虚拟主机下 要如何实现伪静态
  18. Linux 定期清理内存脚本
  19. 带你走进 ERNIE
  20. 安恒堡垒机使用手册_齐治堡垒机简易使用手册

热门文章

  1. 上传相关js和jquery对象
  2. ubuntu 14.04 配置 java 环境
  3. 如何设计Android App测试用例
  4. 图解算法之排序算法(4)——堆排序
  5. linux在线聊天报告,EChat: Linux下基于命令行的在线聊天系统
  6. python 开发工具_「干货」推荐一整套 Python 开发工具
  7. mysql服务连接标识_MySQL 连接 | 菜鸟教程
  8. mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录
  9. graphviz安装以及入门
  10. Zilliqa联合创始人:ZIP-12提案已成功部署,为未来的治理投票奠定基础