魍魉的小窝


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 搜索

[HAOI2006]均分数据

发表于 2018-08-11 | 分类于 OI
字数统计: 670 | 阅读时长 ≈ 3

如果贪心是一只兔子不断往目标跳去,那模拟退火就是一只喝醉的兔子不停乱跳

SA 算法的基本思想是用马尔可夫链的形式进行随机搜索,它不仅接受改善目标函数的变化,而且还能保留一些不理想的变化。
对于改善目标函数的变化直接转移
对于不理想的变化,发生转移的概率为
其中为当前温度,为玻尔兹曼常数,为了方便计算可设
需要设定的参数为初温,末温,和降温系数

适当的温度至关重要

  • 若过大,几乎所有转移都会被接受

  • 若过小,几乎所有不理想的转移均无法被接受,算法将会变为贪心,容易陷入局部最优解

此外,优秀的状态产生函数和状态评估函数将会提高SA的效率
最好是能面向数据编程

放一张Wiki的动图
SA

有了SA这题就好写了
状态生产函数采用随机交换两个元素
状态评估函数采用动态规划
设为前i 个分成j 组的最小

调参调了很久

阅读全文 »

NOIP2004 虫食算

发表于 2018-08-11 | 分类于 OI
字数统计: 683 | 阅读时长 ≈ 4

听说正解是高斯消元,但我还是选择搜索

考虑从右往左搜
退出条件是搜完所有位置
剪枝好像只能可行性剪枝
复杂度还是很高

枚举的时候还能再优化一下

  • 三个数均未确定
    • 枚举其中两个计算第三个
  • 两个数未确定
    • 枚举一个计算一个
  • 一个数未确定
    • 直接计算
  • 均确定
    • 可行性剪枝

比较容易忽略的是回溯过程
不合法也要先回溯再退出

最慢点1000+ms,吸口氧就能过了

阅读全文 »

[CQOI2014]数三角形

发表于 2018-08-11 | 分类于 OI
字数统计: 290 | 阅读时长 ≈ 1

正难则反
合法答案 = 所有三角形 - 水平(竖直)共线 - 斜共线

所有三角形
水平(竖直)共线

斜共线不好直接求,考虑枚举向量
为了保证不重不漏,第一和第二个点分别为起点与终点,第三个点在中间
对于一组,共有种可能,其中第三个点还有种可能
考虑到左右对称,答案还需要

阅读全文 »

[NOIP2009]靶形数独

发表于 2018-07-27 | 分类于 OI
字数统计: 505 | 阅读时长 ≈ 3

x,y,z 分别记录行,列和九宫格内已填数的集合
每次选可填数最少的格子进行扩展

阅读全文 »

[HAOI2008]硬币购物

发表于 2018-07-27 | 分类于 OI
字数统计: 324 | 阅读时长 ≈ 2

没有限制就是一个完全背包
考虑仅有一个c 的硬币限制为d 枚
正难则反,易得为全部方案数
而不合法的方案使用c 的个数肯定为d+1,d+2..
假设c 强制选d+1 个,则现在所有的方案均为不合法的,也就是
对于多个硬币,只需容斥即可

阅读全文 »

可持久化数组

发表于 2018-07-27 | 分类于 OI
字数统计: 334 | 阅读时长 ≈ 2

用可持久化线段树实现

阅读全文 »

Gauss消元

发表于 2018-07-27 | 分类于 OI
字数统计: 291 | 阅读时长 ≈ 2

消元形成倒三角

阅读全文 »

自适应辛普森法

发表于 2018-07-27 | 分类于 OI
字数统计: 160 | 阅读时长 ≈ 1

证明省略

阅读全文 »

二分图匹配

发表于 2018-07-27 | 分类于 OI
字数统计: 203 | 阅读时长 ≈ 1

Hungary 算法

阅读全文 »

[NOIP2012]疫情控制

发表于 2018-07-27 | 分类于 OI
字数统计: 904 | 阅读时长 ≈ 5

无法有效(不会)直接计算,考虑二分答案

对于一个二分的k
显然尽可能地向上移动军队最优
然而问题并没有这么简单
因为根节点不能覆盖
所以当一棵子树有多支军队,而其他子树没有时
简单地贪心就会出错

需要考虑军队在子树之间的转移
记录所有能在子树间转移的军队的剩余路程和所有需要封锁的子树
在寻找未被封锁的子树时,需要转移的军队并不能参与封锁
从大到小贪心地考虑所有要封锁的子树

  • 优先选择已在该子树且剩余距离最小的军队
  • 否则选择当前能够使用的军队

细节很多(调了很久)

阅读全文 »
1…456…12
CWHer

CWHer

OIer/ACGN

120 日志
1 分类
58 标签
RSS
GitHub ZhiHu
Links
  • 洛谷
© 2018 | CWHer
本站访客数:
|
博客全站共54.4k字