摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1983转自:http://hi.baidu.com/song19870626/blog/item/b44a8110d9341376ca80c48d.html思路:封锁出口或者入口周围的格子. 最多需要4个封锁点. 所以我们可以采取这样的策略: 1.寻找一条盗贼的可行路线,如果没有,返回0. 2.计算封锁出口和入口四周需要的封锁点数量,取小的一个,假设是k,k <=4 3.从少到多,遍历所有封锁点个数小于k的方案,验证是否是一条有效的覆盖方案(可以通过是否阻止了1中的盗贼线路进行快速验证). 如果有有效覆 阅读全文
posted @ 2011-03-30 22:12 CoderZhuang 阅读(202) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1800soldiers学习使用魔法扫帚,水平高的可以教水平在他之下的,每个老师有而只有一个学生,并且可以共用一个魔法扫帚练习,要求每个soldier都要有练习魔法扫帚的机会,求最少需要多少个魔法扫帚。如士兵A B C D E水平分别为2 4 5 6 4方法可以是:C教B,B教A,D教E,这样ABC共用一把扫帚,DE共用一把扫帚;只用两把扫帚即可。而结果也只需要两把就可以了。先对数列排序,然后筛选出相等元素,这样循环筛选,每筛选一次代表扫帚增一,直到无可筛选的元素。C could teach B; B coul 阅读全文
posted @ 2011-03-30 18:51 CoderZhuang 阅读(103) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2102本题又是一道BSF搜索求最短路,只是在遇到‘#’时空传输时要注意一下,如果‘#’所对应的另一个迷宫位置也是‘#’时是没有意思的。#include <iostream>#include <stdio.h>#include<stdlib.h>#include<string.h>#include <queue>#include <algorithm>using namespace std;char map[25][15];int T,co 阅读全文
posted @ 2011-03-30 15:14 CoderZhuang 阅读(151) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2141三个整数数列A,B,C。给若干个数X,若能找到Ai+Bj+Ck = X(Ai是数列A中的某一个数,Bj,Ck同理),输出YES,否则输出NO。先是做A和B数列各元素的和并排序,接下来只要二查找X-C,就可以了。#include <iostream>#include <stdio.h>#include<stdlib.h>#include<string.h>#include <queue>#include <algorithm>usin 阅读全文
posted @ 2011-03-30 10:12 CoderZhuang 阅读(126) 评论(0) 推荐(0) 编辑