上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页
摘要: 题面 完了,做的时候已经想不起来分层图这个东西了QAQ 对于这种“多种”路径加中转站的题,还有那种有若干次“特殊能力”的题,都可以考虑用分层图来做 显然只需要记录所有的中转站+起点终点,然后拆出横竖两层,一层的点之间连值为$2$的边,每个站的两层之间连值为$1$的边,然后再跑最短路。注意数组大小,还 阅读全文
posted @ 2018-10-15 21:50 Speranza_Leaf 阅读(183) 评论(0) 推荐(0)
摘要: 题面 先跑一边Floyd乘法原理统计任意两点间最短路数目,然后再枚举一次按照题意即可求出答案,会写那道JSOI2007就会这个 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 阅读全文
posted @ 2018-10-15 21:46 Speranza_Leaf 阅读(130) 评论(0) 推荐(0)
摘要: 题面 我的常数可能是没救了,明明写的差不多,别人的都跑的飞快,就我的T到爆炸,卡常也卡不过去QAQ 我当初这个题手动讨论拿了25pts,然后胡乱贪心搞了5pts 2333 还以为min-max对抗搜索是什么高端的东西,其实就是记录一下行动方,然后对应的在决策时取min/max 这个题可以证明状态量只 阅读全文
posted @ 2018-10-15 21:41 Speranza_Leaf 阅读(112) 评论(0) 推荐(0)
摘要: 题面 还可以这么搜......学到了(PoPoQQQ orz) 我们最朴素的做法是枚举所有状态(当然可以剪,剪完最终实际状态量也是$C_{26}^{13}$的),然后每次$O(n)$扫一遍判断,大概会T炸,考虑优化 我们先预处理每个状态中$1$的数目和连边的状态,然后压缩状态初始让一边集合为空,一边 阅读全文
posted @ 2018-10-12 23:08 Speranza_Leaf 阅读(120) 评论(0) 推荐(0)
摘要: 题面 考虑一个点$x$,如果某两个点$u,v$间的所有最短路都经过$x$,那么$x$肯定是重要的。这个题$n$比较小,所以我们直接跑floyd,在过程中记录 当发生松弛时,我们具体讨论: 如果这个长度是两点间新更新出的一条最短路,即$dis[i][j]>dis[i][k]+dis[k][j]$,我们 阅读全文
posted @ 2018-10-12 22:58 Speranza_Leaf 阅读(118) 评论(0) 推荐(0)
摘要: 题面 在朴素中透着一点新意的状压DP 一个很暴力的思路是枚举位置,状态和硬币,每次二分出向前最多能买到哪里,复杂度爆炸($O(2^knklog$ $n)$) 考虑优化,不妨先预处理一下$goal[i][j]$表示每个硬币$i$在每个位置$j$最多向前能买到哪里,但是这样还是很爆炸,所以我们找来了一个 阅读全文
posted @ 2018-10-12 22:48 Speranza_Leaf 阅读(151) 评论(0) 推荐(0)
摘要: 题面 这个题剪枝比较多的说=。= 1.记录最长和最短的木棍,限制枚举的上下界 2.记录木棍的总长$tot$,只在其能被枚举的长度整除时搜索 3.从长到短枚举长度(暂时好像没啥用) 4.每次(不是新的一根木棍时)从上次枚举的长度开始枚举(和3组合起来用的) 5.(强剪枝来了)如果是在尝试拼一根新木棍, 阅读全文
posted @ 2018-10-12 18:57 Speranza_Leaf 阅读(181) 评论(0) 推荐(0)
摘要: 题面 如果没有两个数不能相同这个限制就两个数组排序后贪心即可。现在加上这个限制,注意到每个数组中的数是两两不同的,所以每次一定能在前面或后面一个数中找一个换过来,这样每次考虑相邻三个数转移就可以了,注意特判一下边界。 1 #include<cmath> 2 #include<cstdio> 3 #i 阅读全文
posted @ 2018-10-12 18:56 Speranza_Leaf 阅读(110) 评论(0) 推荐(0)
摘要: 题面 好像没啥可说的,就当练码力了...... 先用BFS跑出岛屿,然后跑最短路求岛屿间的距离,最后状压DP得出答案 注意细节,码码码2333 1 #include<set> 2 #include<queue> 3 #include<cstdio> 4 #include<cstring> 5 #in 阅读全文
posted @ 2018-10-12 18:48 Speranza_Leaf 阅读(149) 评论(0) 推荐(0)
摘要: 题面 我把这个当做IDA*的模板题的说,说说我个人对IDA*的理解 IDA*是一个DFS,和A*一样,它也有一个乐观的估价函数。这里这个估价函数是用来限制状态的扩展的,如果当前代价加上乐观的估计都无法在规定层数内出解,我们就不向更深搜索了。这里取位置有差异的骑士个数作为估价函数即可,注意是骑士个数, 阅读全文
posted @ 2018-10-12 17:49 Speranza_Leaf 阅读(106) 评论(0) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 26 下一页