- 博客(6)
- 收藏
- 关注
原创 12113:Overlapping Squares
Overlapping Squares 我的思路:可以根据所给图形计算出图形中包含的方块的个数以及它们各自的位置,方块可以根据某一个角点的位置来确定,具体方法见 count() 函数。方块确定之后,图形的各种变化就取决于方块们的不同放置顺序了,枚举所有排列,进行模拟,看看模拟结果里面有没有所给图形即可。 思路没什么问题,代码了检查了好多遍,但是一直WA,暂时还没发现问题,再想想吧。 #in...
2018-12-29 15:48:37 259
原创 211:The Domino Effect
The Domino Effect 回溯加剪枝。只需DFS右、下两个方向即可,可以一行一行来。弄完一行之后看下该行所有数字是否都配对了,否则剪枝。还是得细心,两个 cnt 认错了找了大半天 bug 。。。 #include<bits/stdc++.h> using namespace std; const int n = 7; int cnt; int dx[] = {1, 0}...
2018-12-16 23:41:35 289
原创 225:Golygons
Golygons 回溯加剪枝。某个方向可走的条件是此方向上没有障碍物挡道,还有一点容易被忽视的就是不能落到之前到过的点上!!!最重要的剪枝就是每走一步就判断一下剩下的步数是否有可能回到原点,还有就是如果提前到达原点也要剪掉。 #include<bits/stdc++.h> using namespace std; const int maxn = 50 + 5; int T, n...
2018-12-13 23:34:23 140
原创 208:Firetruck
Firetruck 回溯即可,不过要注意先判断是否可以到达着火点,如果到不了那就没必要回溯了,可能给的数据比较坑,到不了的数据比较多,不判断的话会超时。还有就是输出的格式和样例给的竟然不一样,真是醉了。 #include<bits/stdc++.h> using namespace std; const int maxn = 25; int t, n, cnt2; int vis...
2018-12-11 17:09:21 180
原创 1601:The Morning after Halloween(经典)
The Morning after Halloween 直接BFS会超时,题目中提示过墙壁很多,那么可以将所有的空格提取出来做张图,然后记录每个空格周围的邻居,这样就不用每次都判断能不能走了。优化的话可以使用双向BFS,从每次正向(从开始位置搜索)搜索一次,反向(从目标位置搜索)搜索一次,如果有相同状态则找到最短路径。 BFS(800ms): #include<bits/stdc++...
2018-12-05 22:26:49 388
原创 10603:Fill
Fill #include<bits/stdc++.h> using namespace std; const int maxn = 200 + 5; int T, a, b, c, d; struct node{ int v[3], dist; bool operator < (const node& rhs) const{ retu...
2018-12-03 23:32:32 167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人