每日总结2021.4.26(补)

1.kuangbing 棋盘问题,给定一个n*n的棋盘,只有某些特定的位置能放旗子,并且保证每行每列只能放一个棋子。每个棋子都是一样的,求有多少种放法。

思路:一行一行的搜,在某行的时候枚举看哪一列能放,放过的列标记,而且别忘了这一行不放的分支。

一行一行的搜确保得出的是组合数,而不是排列数。

2.kuangbing Dungeon Master 三维的bfs,很有意思的题目,给定一个三维空间的迷宫,层数,行,列都不超过30,

迷宫存在障碍物,从起点到终点的最小步数;

思路:另开一维纪录层数,其他也没啥了,就是最小步数模型。

3.kuangbing [POJ - 3278] 大意:农夫抓牛,两者在一维坐标中,输入n,k 分别代表农夫和牛的位置0 ≤ n ≤ 100,000, 0 ≤ K ≤ 100,000; 农夫有三次移动方式:+1,-1,乘2,求农夫抓到牛的最小步数。

思路:很容易想到bfs,找最小步数,但是会re是我没想到的。刚开始一看题,好家伙,做过,直接写个裸的bfs,满怀信心的直接交。RE了。 (下手敲代码之前一定要考虑时间复杂度。)先来考虑下坏情况,从0走到100000,每次都乘2最快也得17步,直接bfs, 3的17次方,你不RE 谁 RE。那来想想小的剪枝,再过不了就只能用双向bfs了。

剪枝:首先当n>md的时候没办法,只能每次 -1,就没有搜的必要了。在走的时候每个点到1次,不在(0~100020范围内的点没必要去看它,肯定不是最优的)然后就能过了。总之,这题并不难。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值