随笔分类 -  ZOJ

ZOJ 1008 Gnome Tetravex
摘要:DFS 题目,剪枝比较重要,这里使用的是把重复的方块只记录一次,用 num[] 保存它的数目。# include <cstdio># include <cstring># define N 25 + 2bool finished;int n, m, t[N][4], num[N], ans[N];void dfs(int cnt){ if (cnt == n*n) {finished = true; return ;} int x = cnt/n + 1, y = cnt%n + 1; int left = cnt, top = cnt+1-n; for (int i 阅读全文

posted @ 2012-07-18 16:57 getgoing 阅读(280) 评论(0) 推荐(0) 编辑

ZOJ 2110 Tempter of the Bone
摘要:很早就看到这道题了,当时不太会DFS,搜索只会用BFS;早上看了看书,才发觉DFS是用来解决这种问题的,就把这道题做了,1A;其中涉及两个剪枝:一个是奇偶性,另一个是可以走的方块的数量要不少于要求的步数。# include <stdio.h># include <math.h>char maze[10][10], escape;int n, m, T, sx, sy, dx, dy;const int dir[][2] = {{-1,0}, {0,-1}, {0,1}, {1,0}};char read_data(void){ int i; scanf("%d 阅读全文

posted @ 2012-06-04 10:54 getgoing 阅读(191) 评论(0) 推荐(0) 编辑

ZOJ 1093 Monkey and Banana
摘要:和The Tower of Babylon一模一样,这里给出两个代码:一个是直接做的,不说了;另一个是参考了Staginner大牛的方法,做了一个优化:将底面积按大到小排序,这样搜索时,只用从当前石块的下一个石块开始即可,最后打印 f[1] 即可,复杂度降低很明显的。/* 方法二实际上有个错误,具体见后述。*/方法一 1 # include <stdio.h> 2 # include <memory.h> 3 # include <stdlib.h> 4 5 typedef struct { 6 int x, y, h; 7 }block; 8 9 int 阅读全文

posted @ 2012-04-07 00:16 getgoing 阅读(199) 评论(0) 推荐(0) 编辑

zoj 2988
摘要:/* zoj 2988 */# include <stdio.h># include <string.h>int main(){ int n, i, len; double m; char ch[2]; scanf("%d", &n); i = 0; while (n > 0) { scanf("%lf %s", &m, ch); len = strlen(ch); if(len == 2) { if (ch[0] == 'k') printf(... 阅读全文

posted @ 2012-02-18 22:41 getgoing 阅读(246) 评论(0) 推荐(0) 编辑

zoj 2987
摘要:/* zoj 1987 */# include <stdio.h># include <string.h>int main(){ int T, len, i, k, cnt; char ch[1<<9]; cnt = 0; scanf("%d", &T); while (T > 0) { i = 0; scanf("%d %s", &k, ch); len = strlen(ch); printf("%d ", ++cnt); for (i = 0; i < len; + 阅读全文

posted @ 2012-02-18 22:39 getgoing 阅读(198) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示