搜索Ex (洛谷提高历练地)
搜索Ex
P1120 小木棍
题意:不超过65根长度小于50的小木棍(是由一批等长木棍砍断得到的),求原始木棍的最小可能长度
分析:优化+减枝爆搜
搜索状态要记录当前尝试的已经填好的长度,当前尝试填的木棍的id,以及已经填好了的木棍的数量。
- 优先考虑长度大的木棍,因为组合原始木棍时,长的适应性比较差
- 在组合之后的一个木棍中,组成它的小木棍顺序如果不做要求,会导致重复搜索很多状态,所以可以规定先后加入一根原始木棒的木棍长度时递减的。
- 记录最近一次搜索过的木棍长度,接下来跳过与他等长的木棍
- 对于一个新尝试的原始木棍,如果一开始插入的就是失败的,那么当前分支直接返回失败
- 对于刚拼凑好的一个原始木棍,如果递归分支返回失败,那么当前分支也会失败。
P1378 油滴扩展
分析:\(N \le 6\),所有情况 \(6! = 720\) 种,对于每种顺序,从1到n依次考虑当前油滴能够扩展的最大半径,最后用长方形面积减去即可
P1514 引水入城
分析:首先要想到的一个是对于每个可以建设蓄水厂的位置,它能所及的邻近沙漠的城市是有一个范围的,另外通过样例可以注意到水可以往上走,所以这题如果按照从下向上DP求范围是不对的,能够想到的办法就是记忆化了,求出区间范围之后就是一个最小区间覆盖的问题,直接贪心求或者DP求都是可以的。
P1312 Mayan游戏
这题还没写,之后补
P1441 砝码称重
分析:很容易可以想到是用背包求,n个砝码去掉m个共$C_n^m$种,每个砝码最重100,所以就是一个$(n-m)^2*100$ 复杂度的背包。
P1242 新汉诺塔
分析:原来的汉诺塔一开始只会在一个柱子上,比如在A,最终要把所有的移动到C,我们要先把除了最大的其他所有的移动到B,再把最大的移动到C,这样做是保证最优的。但是在此题中就不灵验了,因为当前最大的那个圆盘或许可以直接到达目标柱,这是因为比他小的都在第三个柱子上。可以想到这个情况只会在一开始调整最大圆盘时发生,这是因为调整它之后,其他所有盘都在一个柱子上,问题就会变成原始的汉诺塔问题了。
搜索Ex (洛谷提高历练地)的更多相关文章
- 动态规划TG.lv(1) (洛谷提高历练地)
动态规划TG.lv(1) P1005 矩阵取数游戏 分析:每行不超过80个数字,直接区间DP即可,\(dp[i][j]\)表示区间\([i,j]\)之间取数可以得到的答案,每次向右或者向左扩展即可.但 ...
- 【算法•日更•第三十九期】迭代加深搜索:洛谷SP7579 YOKOF - Power Calculus 题解
废话不多说,直接上题: SP7579 YOKOF - Power Calculus 题意翻译 (略过没有营养的题干) 题目大意: 给出正整数n,若只能使用乘法或除法,输出使x经过运算(自己乘或除自己, ...
- 搜索【洛谷P2845】 [USACO15DEC]Switching on the Lights 开关灯
P2845 [USACO15DEC]Switching on the Lights 开关灯 题目背景 来源:usaco-2015-dec Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一 ...
- 洛谷 P1656 炸铁路
P1656 炸铁路 题目提供者kkksc03 标签图论搜索/枚举洛谷原创 难度普及/提高- 题目描述 因为某国被某红色政权残酷的高压暴力统治.美国派出将军uim,对该国进行战略性措施,以解救涂炭的生灵 ...
- 洛谷 P1706 全排列
可能是最简单的题了……讲真搜索hhh 洛谷 P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: ...
- 洛谷P1074 靶形数独 [搜索]
题目传送门 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了 ...
- 洛谷 P1219 八皇后【经典DFS,温习搜索】
P1219 八皇后 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序 ...
- NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有 ...
- 【洛谷4005】小Y和地铁(搜索)
[洛谷4005]小Y和地铁(搜索) 题面 洛谷 有点长. 题解 首先对于需要被链接的两个点,样例中间基本上把所有的情况都给出来了. 但是还缺了一种从下面绕道左边在从整个上面跨过去在从右边绕到下面来的情 ...
随机推荐
- UML软件工程复习——用例图和类图
------------恢复内容开始------------ 软件产品开发流程是需求.分析.设计.实现. 面向对象三大特征:继承性,封装性.多态性 模型将软件生命周期划分为软件计划.需求分析和定义.软 ...
- MCU的心脏-晶振
晶振是石英晶体谐振器(quartzcrystal oscillator)的简称,它被称为电路系统的心脏,它为整个系统提供"心跳".中央处理器(CPU)一切指令的执行都是建立在这个& ...
- mysql查看修改参数
1.查看参数 show variables like '%timeout%'; 2.修改参数 会话级别修改: set session innodb_lock_wait_timeout=50; 对当前会 ...
- 关于SET/GET PARAMETER ID的注意事项
通常这两个语法配合 PARAMETER, select-options中的参数 memory id来使用. 如,选择屏幕定义 PARAMETER p1 TYPE c LENGTH 10 MEMORY ...
- 02--Docker配置阿里云镜像加速器
1.登录阿里云控制台,在产品与服务中收索 "容器镜像服务" 2.点击镜像加速器,CentOS 3.在路径 /etc/docker/daemon.json 下配置加速器地址 4.重新 ...
- Android 代码规范大全
前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...
- TCP三次握手Linux源码解析
TCP是面向连接的协议.面向连接的传输层协议在原点和重点之间建立了一条虚拟路径,同属于一个报文的所有报文段都沿着这条虚拟路径发送,为整个报文使用一条虚拟路径能够更容易地实施确认过程以及对损伤或者丢失报 ...
- 【Android】报错 Please ensure Hyper-V is disabled in Windows Features, or refer to the Intel HAXM 的解决方案
参考文章 实测华为锐龙本(adm yes)安装Android avd虚拟机教程 环境 Android Studio 3.6; Windows 1909; AMD Ryzen 4800U with Ra ...
- 【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)
九 Redis 常用配置文件详解 能够合理的查看,以及理解修改配置文件,能帮助我们更好的使用 Redis,下面按照 Redis 配置文件的顺序依次往下讲 1k 和 1kb,1m 和 1mb .1g 和 ...
- python中贪婪与非贪婪
Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符: 非贪婪则相反,总是尝试匹配尽可能少的字符. 在"*","?", ...