最近几日写代码的技巧与感想
Day 10.12 - Day 10.16
- 对于广搜压队列,一定不要把不符合条件的对象进行遍历,同时不要进行二次遍历。
- 在写ICPC先导题的时候,map 的对象不能出现insert的操作,即使操作也需要make_pair(没尝试过,不知具体能不能用)我的解决方案是直接
a[name] = value;
不然会有如:> 无法取消引用类型为_iter的操作数的报错
同时在进行erase的操作时,在进行find后,虽然判断了所得到的迭代器是否为end,但是忘记加上了continue,结果对空的位置进行了erase,出现了RE - 对于深搜目前需要一个确定的模板,且做题的时候要进行细致的分析,不要太过匆忙。
- 对于题目
https://acm.sjtu.edu.cn/OnlineJudge/problem/2387
这个题的思路不是要遍历r而是要遍历调整喷水器的次数。深搜一定要记得两个点,首先是状态回复,第二个是对访问进行标记,防止二次访问。
而这道题之所以一直不过,在于我找最小值的时候,只考虑了右边界和上边界,没考虑左边界和下边界,
r = min(abs(y -yy),abs(x - xx));
r = min(min(min(abs(xx - x), abs(yy - y)),xx),yy);
- 对于题目 [1993 小呆的木棍]
https://acm.sjtu.edu.cn/OnlineJudge/problem/1993
这道题后来看了洛谷的题解,虽然和我的想法差不多,但整体的思路仍没有把握。必须抓紧写上。
6.时间比较紧张,少点写
迷宫那道题,虽然找到了对应的传送门位置,但是不要先把传送门设为visit[i][j] = true,这是WA的唯一原因
蛋糕的题严重反应了写代码时候不细心的毛病