[关闭]
@poorpool 2017-10-05T13:05:39.000000Z 字数 642 阅读 963

清北学堂金秋营 day1

%%%zhx

搜索


set的用法(t3判重)

  1. #include <set>
  2. using namespace std;
  3. set<int> se;
  4. int main(){
  5. int s;
  6. se.insert(s);
  7. if(se.count(s))
  8. then zailimian
  9. se.erase(s);
  10. }

结构体的set,要自己实现小于
当然能用bool数组就用bool数组

剪枝

通用法:

卡时

  1. #include <ctime>
  2. //仅用于最优解
  3. ...
  4. int t=clock();
  5. //返回一个从很早以前算起的时钟值,单位时钟单元
  6. //CLOCKS_PER_SECOND为每秒的时钟单元
  7. //1s建议设到0.85s
  1. if(clock()-t>900) print(), exit(0);

据说mayan游戏可以这么过,尽管笔者自己朴素地写过了

双向bfs

要求:
1. 知道终止状态
2. 终止状态的逆转移可写
3. 终止状态逆转移状态与顺转移状态数同阶(忽略本条即可)
八数码问题可用。

a*

似乎没什么卵用。

分支界定

bfs的扩展
用优先队列搞出目前最好的

迭代加深搜素

出题人卡你bfs内存咋办?
利用迭代加深,限定dfs搜索深度。
两种迭代加深的方法:
1. 枚举深度(建议)
2. 二分深度

题目


靶形数独
mayan游戏
flowfree

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注