bfs
Last0rder
最后之作
展开
-
蓝桥杯 九宫重排
康托展开式去重来一发bfs #include #include #include #include #include #include #include #include #include #include using namespace std; const int PermSize=9; int factory[20]={0,1,2,6,24,120,720,5040,40320,3原创 2014-12-12 19:10:57 · 1277 阅读 · 0 评论 -
HDU5040Instrusive
题意:给定一个地图,要从'M'点到'T'点,每次可以往四个方向移动,平时每次移动1格花费1秒。但是由于地图上有一些监控,如果当前所在格被监控看到,就必须躲在纸箱里,躲在纸箱里移动一格的耗时是3秒。而监控的可视范围是它本身所在的一格,以及它朝向的相邻一格。监控每秒会顺时针旋转90度。地图上还有一些‘#'标记表示不可以进入的。可以在原地停留1秒。 时间卡得有点紧,单纯dp过不了,要用优先队列优化下原创 2015-02-23 23:25:09 · 1116 阅读 · 0 评论 -
ZOJ Problem Set - 3811 Untrusted Patrol
Untrusted Patrol Time Limit: 3 Seconds Memory Limit: 65536 KB Edward is a rich man. He owns a large factory for health drink production. As a matter of course, there is a large warehouse in原创 2015-02-14 12:46:36 · 1460 阅读 · 0 评论 -
hdu5335Walk Out
题意:给出一个01矩阵,从左上角走到右下角,问路径形成的二进制最小是多少。 这个题目很显然,但是我的做法还是很有意思的,于是写下。 很显然,为了去掉前导0的影响,首先爆搜出所有离重点最近的点然后压入丢列开始爆搜,此时只需要往下往右走即可。 爆搜的时候每次处理出下一层的所有状态,若能够出现0,则不考虑其他为1的情况,这样只需要维护两个数组即可,很方便。 #includ原创 2015-07-30 21:39:46 · 862 阅读 · 0 评论 -
hdu5336XYZ and Drops
题意:给出r*c的网格,有的网格为空,有的有水,再给出一个爆炸点,从这个点向四周爆出四个水滴,若碰到水则融为一体,若碰到其他水滴直接跑过去互不影响,每秒可跑一格,问T秒后网格的状态是怎样的。 做法:由于数据有点多,直接用set优化bfs一次走一步的过程,变成一次走多步即可。 #include #include #include #include #include #in原创 2015-07-30 21:28:42 · 1237 阅读 · 0 评论 -
codeforces 552 C Vanya and Scales
这个题的意思就是给出一个数m,以及一个以1为首元素,w为比例常数的等比数列,数列长度为101,数列中每个数字最多只能用一次。问是否存在xa+wb+……=wc+wd+……+we+m。 很显然,换句话说就是问,是否存在m=wa+wb+……+wf-wc-wd-……-we,再进行化简就可以得到,是在问,是否存在m=((((wh±1)wi±1)±1)wj±1)wk……。 那么很显然可以进行搜索,比如说用原创 2015-07-21 09:00:42 · 989 阅读 · 0 评论 -
hihocoder 1233 Boxes
题意:给出n个不同的数,每次可以把一个较小的那个数移到相邻的较大的那个数的上面,问最少需要移动多少次使得这n个数是升序的。 做法:从升序状态bfs出到其它状态的最小步数即可,状态s:从左到右,第i个数在第j个位置,例如 序列312表示成231,因为1在第2个位置,2在第3个位置,3在第1个位置。 #include #include #include #include #include原创 2015-09-22 12:19:09 · 1151 阅读 · 0 评论