版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、问题求解与程序设计第七讲 搜索李文新2019.2 2019.6 内容提要 搜索 讨论 1011 stick 讨论 1054 the troublesome frog 参考王知昆的冬令营报告 作业搜索的一般概念 在解空间中尝试所有可能,找出满足条件的取值 回顾填数游戏:1-9填在3*3的表格中,使得行、列、对角线的和均为15。 方程组 搜索 逐一尝试+剪枝题目讨论 1011 stick题目讨论 The Troublesome Frog IOI 2019 day 1 task 1问题 稻田问题 青蛙从外面跳入稻田,踩过一些禾苗,后,跳出稻田。问题 蛙路:一个方向,等间距,大于等于3个点 不同蛙路:
2、可以方向不同,间距不同问题 许多青蛙跳过稻田,形成多条蛙路,不同蛙路可以踩过同一作物。问题 青蛙每天早上踩坏稻田,早上人们发现稻田有若干株作物被踩坏,但不知多少青蛙来过。也有不在蛙路上的被踩坏的作物。问题 问,给定一块被踩坏的稻田,求可能的最长的蛙路上被踩坏的作物的数目。输入 第一行整数R和C,稻田的行数和列数 第二行整数N,表示被踩坏的作物总数。 后续N行,每行两个整数i,j为被踩坏的作物的行和列的位置:1=i=R,1,1=j=C。 每个被踩坏的作物只出现一次。输出 单个整数- 表示最长可能蛙路上踩坏的作物数目样例 Figure- 4问题的解 这道题目也就是说,在给出的n个点中找出一些点的序
3、列来,使得每一个点相对于上一个点的坐标都是一个相同的向量,且第一个点减去这个向量和最后一个点加上这个向量后均落在方格的外面。 问题的解 我们先对这些点按照坐标排序。然后依次循环出要求的序列中的第一个和第二个点,这样我们就知道后一个点相对于前一个点的坐标是多少了。然后我们依次用第二个点加上这个坐标的出第三个点,第三个点加上这个坐标得出第四个点等等。当然,我们还需要判断一下这求出来的第三个、第四个点是否在给定的点内。 问题的解 由于每个点的上一个点/下一个点最多只能有n种选择,故一个点最多属于n条不同的蛙路。这样,对于某个确定的点来说,它的所有可能的下一个需要判断的点至多有n个。这样因为判断一个点
4、在不在给定的点内只需要O(1)的复杂度,所以我们只需要O(n2)的时间就可以得出问题的解答。由于这个算法需要一个r*c的表来保存点在方格中的存在状态,故空间复杂度为O(n2)。 问题的解 需要注意的是,蛙路中的点数少于3个的时候是不考虑的。所以这个时候的蛙路中的点数应该按照0来算。 实现细节 Frog vs frog 平面上点的表示 Frog 2 0 有冗余代码 Frog 2 1 去掉冗余 Frog 2 2 compare 判别 Frog 2 3改变表达式写法 Frog 2 4增加剪枝 Frog 2 5不太好的剪枝顺序 Frog 2 6较好的剪枝顺序测试数据No. N, (R*C) Descr
5、iption Solution1 18, (6 * 7) Sample data in the task description 42 10, (10 * 10) Manually designed 53 25, (50 * 50) Manually designed 134 50, (10 * 10) Several Lines + random points 105 100, (20 * 20) modified random point set 106 300, (30 * 30) modified random point set 157 500, (55 * 55) Several
6、Lines + random points 288 500, (100 * 100) Special case for no solution 09 1000, (100 * 100) Several Lines + random points 3410 1000, (1000 * 1000) Several Lines + random points 25011 2000, (50 * 50) Random (uniform) points 2512 2000, (100 * 200) Several Lines + random points 3313 2000, (1000 * 2000
7、) Several Lines + random points 333测试数据14 3000, (60 * 60) Uniformly random points 3115 3000, (500 * 500) X shapes and random points 50016 3000, (5000 * 1) Horizontal line 2017 3000, (5 * 1000) Several Lines + random points 1718 4000, (100 * 100) Random points (uniformly) 3419 4000, (200 * 20) Very dense points set 20020 4000, (1000 * 1000) Several Lines + random points 50021 4000, (5000 * 5000) Several Lines + random points 31122 5000, (100 * 100) Chess board style 10023 5000, (1000 * 1000) Several Lines + random points 33424 500
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼师入职职业发展规划
- 初中理论考试题库及答案
- 管理制度考试题库及答案
- 2025-2026人教版初中三年级语文上学期测试卷
- 肠道菌群与代谢性肾病进展的关联
- 《保温集装箱用反射隔热涂料(征求意见稿)》编制说明
- 肠内肠外营养支持技术的优化策略
- 中医药卫生应急制度
- 一次性卫生用品管理制度
- 卫生院合同业务内控制度
- 2025年大学生物(细胞结构与功能)试题及答案
- 2026年张家界航空工业职业技术学院高职单招职业适应性测试参考题库含答案解析
- 氮气安全技术说明书
- 2025年江苏省苏州市中考数学模拟试卷(含答案)
- GB/T 45133-2025气体分析混合气体组成的测定基于单点和两点校准的比较法
- 北京市行业用水定额汇编(2024年版)
- 婚内财产协议书标准版
- 基于大数据的金融风险评估模型构建
- 供应链与生产制造L1-L4级高阶流程规划框架 相关两份资料
- 国际贸易合同履行中的运输保险索赔程序与操作指南
- 运动系统疾病
评论
0/150
提交评论