2014年3月26日
摘要: 点我看题目题意 : 一个N×M的迷宫,D是门的位置,门会在第T秒开启,而开启时间小于1秒,问能否在T秒的时候到达门的位置,如果能输出YES,否则NO。思路 :DFS一下就可以,不过要注意下一终止条件再判断一下时间,还有因为题目中要求走过的路要变成墙,所以每次走的时候要注意一下把路变成墙,但是如果你不走这条路了,要记得变回来。还有这个题必须剪枝,否则超时超到疯啊,DFS函数中那个剪枝不怎么好想,T-t代表的是在当前位置还需要T-t步路。而fabs(ex-x)+fabs(ey-y)指的是当前位置离终点最短还有着些步数,如果两者之差不小于0的话,T-t应该等于fabs(ex-x)+fabs 阅读全文
posted @ 2014-03-26 21:36 枫、 阅读(339) 评论(0) 推荐(0)
摘要: 点我看题目题意 : 就是给你n个矩形的最左下角和最右上角的点的坐标,然后将这n个矩形的面积求出来。思路 : 离散化求矩形面积并。离散化具体介绍。将横纵坐标离散开来分别存,然后排序,也可以按照黑书上411页写的两个算法中,有一个说是用二分,效率比较好,不过我用的不是二分,而是普通的循环查找。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 double x[201],y[201],s[101][4]; 7 int flag[201][201]; 8 int t,cas = 1 ; 9 double s... 阅读全文
posted @ 2014-03-26 19:10 枫、 阅读(187) 评论(0) 推荐(0)
摘要: 点我看题目题意 : 中文题不详述。思路 :因为还牵扯到层的问题,所以用三维的解决,不过这个还是很简单的BFS,六个方向搜一下就可以了,一开始交的时候老是超时,怎么改都不对,后来看了一个人写的博客,他说用C++交300ms,G++交600ms,我就改成C++交了,果然AC了,不过。。。。用了900ms。。。。。我也懒得改了,也不知道为什么G++交超时#include #include #include #include #include #include #include using namespace std ;int mapp[51][51][51] ;bool vis[51][51][51 阅读全文
posted @ 2014-03-26 16:17 枫、 阅读(168) 评论(0) 推荐(0)