早上
早上学长讲课。首先讲的是位运算。位运算是一个奥妙重重的东西,比任何逻辑运算符都快上许多倍, 可以用做常数优化的利器。它有许多神奇的应用,比如可以把枚举子集写的这样飘逸
for(int x = n; x; x = (x - 1) & n)另外呢他还有类似__builtin_popcount()这种奥妙重重的底层函数。
接下来讲的是搜索。搜索方面讲了ID、A*、双向bfs、剪枝等东西。之前有所了解但学习不深。
下午手贱花式翻车记
下午t1,一眼看去像是冰茶鸡,结果发现要删边。推(颓)了一会发现做不出来,一度认为不是并查集,写了个(假的,跑的比比单向都慢)双向bfs。后来去看t2,手推,又发现推不出来。然后眼角余光扫了一眼t1的数据范围,我感觉它在强烈暗示我这一道是冰茶鸡!于是t3弃疗,继续肝t1。肝到最后一刻也没肝出来,准备愉快的交那份bfs。
下面来说说我是怎么翻车的。按理说双向bfs应该得30 - 40分是吧,但题目上写的是“YES”和“NO”,我的是“Yes”和“No”。于是,bomb。
听讲题。第一题听@Azrael_Death讲。巧妙的反式建图完美的解决了这道题(之前从未想到反着建)。t2听@味精dalao,假搜索,真二分。t3...听学长讲,这是一道真搜索,比较考验剪枝技巧,值得一做。
总
感觉自己练题还不够啊,以后重点应该是多做题,特别是搜索这类需要练的题。
另外以后考试看清题(逃