noip宝藏
题解:
我觉得状压比搜索不知道简单到哪里去了。。
为了练习搜索。。。想了一下这题的搜索。。
然后会发现想想就很容易想到dp。。
最后的搜索大概是这样的
我们会发现有一类搜索都是这样
你会重复(可能是指数级)经历一个状态,但是又无法避免
比如这题
假设你现在都是1,然后有n个点要被扩展成2
那直接暴力dfs枚举连边会算成n!种
所以我们会使用记忆化这种东西
这题里我们可以记忆化每个点的d值,然后算出一个花费
当经历重复状态花费又大于原先的时候就退出
关键在于如何记忆
稳一点建立真正的hash表,但这样空间是mo*n的 比较容易炸
我们考虑用双模数(防止冲突)
然后取两个模数里的答案的较大值 这样相对而言冲突概率很小
想要观察正确性的话可以对拍一下(搜索和记忆化搜索对拍)
另外从最优性剪枝来说
如果剩下点*最小边+当前距离>ans
就退出
网上有题解用n^2的代价去找出剩余点中的最小边
不管这个有用无用,但这个对复杂度是不会造成差的影响的
因为下面要n^2枚举选的边,所以最多常数*2 所以这个我觉得是可行的
搜索中的剪枝要尽量满足与原本就有的复杂度持平
靶形数独那题也是这个道理
noip宝藏的更多相关文章
- zhizhang错误(每天更新更新)
做题反思(Think twice ,Code once) 1.2013NOIP转圈游戏,交代码前一定要静态查错,看看代码写得和自己意思一不一样,竟然把变量n写成了常数10,低级错误 2.2013NOI ...
- noip模拟6[辣鸡·模板·大佬·宝藏]
这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...
- NOIP 模拟 6 宝藏
题目 题解 这道题是 \(NOIP\;\;2017\) 的原题 ,让我见识到了什么是真正的 \(dfs\) 考场上想出来要状压了,\(n\) 那么小,肯定是压 \(n\) 那一位,然后层第转移,但是想 ...
- [NOIp 2017]宝藏
Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋 ...
- 【NOIP 2017】宝藏
Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋 ...
- 8.18 NOIP模拟测试25(B) 字符串+乌鸦喝水+所驼门王的宝藏
T1 字符串 卡特兰数 设1为向(1,1)走,0为向(1,-1)走,限制就是不能超过$y=0$这条线,题意转化为从(0,0)出发,走到(n+m,n-m)且不越过$y=0$,然后就裸的卡特兰数,$ans ...
- [luogu]P3959 宝藏[NOIP][状态压缩DP]
[luogu]P3959 宝藏[TREASURE] 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的 ...
- LUGOU 3959 宝藏 (noip 2017 day2 T2)
传送门 解题思路 去年noip现在拿来写..思路还是听清楚的,记忆化搜索,f[S]表示现在选了集合S时的最小代价,dis[i]表示达到最优时i这个点的深度.f[S| (1< < i-1) ...
- 水题挑战3: NOIP 2017 宝藏
参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋 ...
随机推荐
- 题解-洛谷4921&4931 情侣?给我烧了!(加不加强无所谓版)
Problem 简单版 & 加强版 题目概要(其实题面写得很清楚,这里搬运一下): \(n\) 对情侣排座位,恰有 \(n\) 排座位,每排 \(2\) 个座位,在一个就座方案中所有人会将将座 ...
- [转载]Maximum Flow: Augmenting Path Algorithms Comparison
https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-augmenting-path- ...
- 029_shell编写工作常用工具类总结
一.检查命令的执行结果 function check_result() { result=$? flag=$1 if [[ "$result"x == "0"x ...
- FreeSWITCH异常原因总结
最经在玩FreeSWITCH的时候,遇到很多的问题,特此总结一下,希望以后不要犯类似的错误了: 1.Client端无法注册,但是FS运行正常? 解决办法:查看防火墙是否关闭./etc/init.d/i ...
- python学习第39天
# 数据操作 # 增 # 删 # 改 # 查 # 单表查询 # 多表查询
- Flask允许跨域
什么是跨域 在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link> 等标 ...
- Python-递归、三元表达式列表生成式等
一.函数递归 1.什么是函数递归:函数的递归调用是函数嵌套的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数本身,称之为函数的递归调用 2.递归调用必须明确的两个阶段: 1.回溯:一次次 ...
- socket-WebSocket-HttpListener-TcpListener服务端客户端的具体使用案例
/// <summary> /// 启动服务监听的ip和端口的主线程 /// </summary> /// <param name="tunnelPort&qu ...
- python 爬虫简化树状图
- NIO(二)
Mark和reset的使用 package com.cppdy.nio; import java.nio.ByteBuffer; //Mark和reset的使用 public class NIOBuf ...