noip宝藏】的更多相关文章

题解: 我觉得状压比搜索不知道简单到哪里去了.. 为了练习搜索...想了一下这题的搜索.. 然后会发现想想就很容易想到dp.. 最后的搜索大概是这样的 我们会发现有一类搜索都是这样 你会重复(可能是指数级)经历一个状态,但是又无法避免 比如这题 假设你现在都是1,然后有n个点要被扩展成2 那直接暴力dfs枚举连边会算成n!种 所以我们会使用记忆化这种东西 这题里我们可以记忆化每个点的d值,然后算出一个花费 当经历重复状态花费又大于原先的时候就退出 关键在于如何记忆 稳一点建立真正的hash表,但…
做题反思(Think twice ,Code once) 1.2013NOIP转圈游戏,交代码前一定要静态查错,看看代码写得和自己意思一不一样,竟然把变量n写成了常数10,低级错误 2.2013NOIP积木,思考时一定要多化简,先考虑小规模,比如先考虑n=1,n=2 3.交题前,一定要用文件输入样例,文件输出,切记一定要把freopen放在最前面 4.认真分析时空复杂度(空间不可小觑) 5.严防数组越界(+1) 6.删除debug 7.dp边界 8.sum边界 9.重建图一定要记得清空tot,h…
这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走了15pts 然后我就淦第二题,这第一眼扫过去,就觉得是树链剖分,然后连复杂度都没算,就生生的码了一个小时, 给我弄傻了,好像复杂度是(8n+?????nlogn)的,然后看了看最坏是(n2logn)的,不卡死你才怪!!! 然后这第三题吧,是这场考试中最让我后悔的一道题,看到概率期望就害怕,然后最后…
题目 题解 这道题是 \(NOIP\;\;2017\) 的原题 ,让我见识到了什么是真正的 \(dfs\) 考场上想出来要状压了,\(n\) 那么小,肯定是压 \(n\) 那一位,然后层第转移,但是想了半天,一堆细节没搞懂,拿了个暴力分跑了. 后来看了题解才知道这竟然可以 \(dfs\) 搜索,虽然说剪支很恶心,但是那 \(70\) 短小的暴力太爽了 对于此题,由于我们更新某一条边不仅和终点有关,也和起点有关,所以我们在枚举终点时也要枚举它是有哪个点转移而来的 \(70\) 分 \(CODE:\…
Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小明还需要考虑如何开凿宝藏…
Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定 在此基础上,小明还需要考虑如何开凿宝藏屋…
T1 字符串 卡特兰数 设1为向(1,1)走,0为向(1,-1)走,限制就是不能超过$y=0$这条线,题意转化为从(0,0)出发,走到(n+m,n-m)且不越过$y=0$,然后就裸的卡特兰数,$ans=C(n+m,n)-C(n+m,m-1)$ #include<iostream> #include<cstdio> #include<cstring> #define mod 20100403 #define ll long long using namespace std…
[luogu]P3959 宝藏[TREASURE] 题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定.…
传送门 解题思路 去年noip现在拿来写..思路还是听清楚的,记忆化搜索,f[S]表示现在选了集合S时的最小代价,dis[i]表示达到最优时i这个点的深度.f[S| (1< < i-1) ]=f[S]+a[i][j]*(dis[i]+1) 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const int M…
参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 \(n\) 个深埋在地下的宝藏屋, 也给出了这 \(n\) 个宝藏屋之间可供开发的 \(m\) 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小明还需要考虑如何开凿宝藏…