摘要: ~~本算法建议谨慎使用,否则一不小心就会变成模拟退役~~ ##爬山算法 爬山算法是一种贪心搜索,每次从当前状态的所有后继状态中选择一个最优解继续搜索,直到达到一个局部最优解后不再搜索。 优点:好写 缺点:容易陷入局部最优解出不来 就像下图一样 多随机几个初始状态就能减小(不能消除)缺点 ##模拟退火 阅读全文
posted @ 2021-07-16 21:17 wljss 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 只要你敢想,没啥能挡得住你拿分 遇到不会的题,随机化算法也不失为一种很好的对策 无论你是欧皇还是非酋,在极大似然法面前众生平等 ##生成随机数 cout<<rand();会输出一个随机数,需要用到cstdlib库 但是,这些随机数是伪随机数,每次输出的都一样。 需要这么做srand(time(0)) 阅读全文
posted @ 2021-07-16 19:39 wljss 阅读(166) 评论(0) 推荐(1) 编辑
摘要: 概率&期望 首先遇到这到题我们可以想出来一个DP的方法,设 \(f[S]\) 为当前小Q手里的牌的状态为 \(S\) 时,小Q能赢的概率. 我们枚举 \(S\) 能转移的其他状态,就能列出来转移方程,一共有 \(2^n\) 个方程. 解方程我们需要用到高斯消元,所以这样做时间复杂度为 \(O((2^ 阅读全文
posted @ 2021-07-16 10:15 wljss 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 这道题是真的考验得分技巧 如果n<=5,那么直接用随机数模拟 n大一点的时候呢? 我们分开单独考虑每一个颜色 考虑一个颜色时,可以把这个颜色看成白球,其他颜色看成黑球,我们要求的就是全部变成白球的期望步数,此时我们设$f[i]$为当前有i个白球,全部变成白球的期望步数 而且我们每次操作不一定会出现黑 阅读全文
posted @ 2021-07-16 09:56 wljss 阅读(174) 评论(0) 推荐(1) 编辑
摘要: 题目链接 写这道题最重要的是条理清晰。 除了阳光长跑外,其他的都能在读入的时候处理掉。 处理阳光长跑最头疼的就是处理时间。 把时间单位都变成秒就好啦。 我们算出从2017年1月1日0点到这时刻有多少秒就行啦。 代码注释很详细,具体看代码吧。 #include<algorithm> #include< 阅读全文
posted @ 2021-07-16 08:43 wljss 阅读(84) 评论(0) 推荐(0) 编辑