2013年7月11日

EOJ 1126 最近点对(二分)

摘要: http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=1126hdu 1007 http://acm.hdu.edu.cn/showproblem.php?pid=1007 求最近点对的距离。主要思想就是分治。先把n个点按x坐标排序,然后求左边n/2个和右边n/2个的最近距离,最后合并。合并要重点说一下,比较麻烦。 首先,假设点是n个,编号为1到n。我们要分治求,则找一个中间的编号mid,先求出1到mid点的最近距离设为d1,还有mid+1到n的最近距离设为d2。这里的点需要按x坐标的顺序排好,并且假设这些点中,没有2点在同一个位置。(若有,则 阅读全文

posted @ 2013-07-11 18:47 KimKyeYu 阅读(359) 评论(0) 推荐(0) 编辑

EOJ 2067 Building Roads

摘要: http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=2067poj 3625 http://poj.org/problem?id=3625题目大意:有N个农场,现在给出他们的坐标,并且已经知道了有些农场他们之间是已经相连的了,现在问怎么连最小的边,能将这些农场都连接起来解题思路:变相的最小生成树,即将已经连起来的边的权值置为-1,那么根据prim算法,优先选的就是那条-1边,这样我们在选边的时候,如果是-1边我们就可以不用加进来 1 #include 2 #include 3 #include 4 #include 5 using n... 阅读全文

posted @ 2013-07-11 16:33 KimKyeYu 阅读(329) 评论(1) 推荐(0) 编辑

2013年7月10日

EOJ-2104 小强过桥

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2104题意:给出n个节点之间路径的载重量,求出从s点到t点的可行的最大载重量。解法:n的数据量10^6,只能用邻接表存储,二分枚举最大载重量,用BFS遍历图判断是否合理,直到得到最优解。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 # 阅读全文

posted @ 2013-07-10 19:17 KimKyeYu 阅读(220) 评论(0) 推荐(0) 编辑

2013年7月9日

EOJ-2518 Guarding the Farm

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2518题意:给出一张图,求出其hilltop的个数。hilltop的定义:一片相同高度的区域,而周围的区域的高度都小于它,或处于图的边缘。周围的区域:与某片区域高度不相同的区域,且范围是向八个方向延伸。DFS搜索某个点,并记录,搜索周围八个方向,若有一个点大于它则这块区域不是HILLTOP。标记周围所有与它高度相同的点防止重复搜索。 1 #include 2 #include 3 #include 4 using namespace std; 5 int mat[105][75]; 6 bool 阅读全文

posted @ 2013-07-09 10:22 KimKyeYu 阅读(228) 评论(0) 推荐(0) 编辑

2013年7月8日

EOJ-2064 Bookshelf 2

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2064大致题意:给出一些物品的体积与体积上限,选出一些物品,使得物品总体积大于等于体积上限且差值最小,求出这个差值n 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 #include13 #include14 #include15 #include16 using namespace std;17 int a[21],nex 阅读全文

posted @ 2013-07-08 22:40 KimKyeYu 阅读(203) 评论(0) 推荐(0) 编辑

EOJ-2069 Asteroids

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=2069poj 3041题意:给出一系列的正整数坐标点,求最少需要几条直线覆盖所有点。思路:每个点可以由一条垂直的线或一条平行的线覆盖,用匈牙利算法计算出最大匹配,则是需要的直线的数目(意思为若有的点未被匹配到,那一定会被已连接它的某条线覆盖,可以想象成我找了一些横坐标不同的点,然后找每个x方向上的点的纵向是否能够匹配掉一些点,则这些可用垂直线连接)。若有点x,y 则x->y就有一条通路,每次x匹配y,若y已经被匹配,则看y的顶点是否有增广路径(即有其他的点x',y') 1 # 阅读全文

posted @ 2013-07-08 20:55 KimKyeYu 阅读(249) 评论(0) 推荐(0) 编辑

EOJ-1855 Expedition

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1855题意:一辆车每行驶一单位的路程就消耗一单位的油,给出n个加油站以及他们的位置和可加油量,给出初始油量P和车与目的地的位置L,求需要加油的最少次数。思路:贪心,先把初始P全部耗尽看能走的路程是否超过L,否则就加一次油。将新路程加上当前途中经过的加油站能加油量的最大值,直到能行驶的路程大于等于L。因为考虑加油量有重复的情况,这里用了堆,优先队列,每次出队的是队内元素的最大值。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #in 阅读全文

posted @ 2013-07-08 00:49 KimKyeYu 阅读(383) 评论(0) 推荐(0) 编辑

2013年7月7日

EOJ 1068 石子游戏-B

摘要: http://acm.cs.ecnu.edu.cn/problem.php?problemid=1068题意: 该题比一般的NIMM博弈多了每次取1-m个的限制,容易联想到巴什博奕。解题思路: 把每堆数量减少到 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 int main()11 {12 //freopen("testin.txt", "r", stdin);13 //freopen("testout.txt" 阅读全文

posted @ 2013-07-07 22:07 KimKyeYu 阅读(297) 评论(0) 推荐(0) 编辑

二分图匹配(匈牙利算法模板)

摘要: 最大匹配——匈牙利算法 1 /**************************************************** 2 二分图匹配(匈牙利算法的DFS实现) 3 INIT:g[][]两边定点划分的情况 4 CALL:res=hungary();输出最大匹配数 5 优点:适于稠密图,DFS找增广路快,实现简洁易于理解 6 时间复杂度:O(VE); 7 ****************************************************/ 8 #include 9 #include 10 #include 11 using namespace std;12. 阅读全文

posted @ 2013-07-07 12:49 KimKyeYu 阅读(219) 评论(0) 推荐(0) 编辑

【转】HDOJ题目分类

摘要: 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 1202 1205 1209 1212(大数取模) 1216(链表)1218 1219 1225 1228 阅读全文

posted @ 2013-07-07 12:42 KimKyeYu 阅读(380) 评论(0) 推荐(0) 编辑

导航