05 2012 档案
摘要:GameRes游戏开发资源网 http://www.gameres.comAmit's A star Page中译文Amit's A star Page中译文原文链接:http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht译序这篇文章很适合A*算法的初学者,可惜网上没找到翻译版的。本着好东西不敢独享的想法,也为了锻炼一下英文,本人译了这篇文章。由于本人英文水平非常有限,六级考了两次加一块不超过370分,因此本译文难免存在问题。不过也算是抛砖引玉,希望看到有更多的游戏开发方面的优秀译作出现,毕竟中文的优秀资
阅读全文
摘要:HDOJ 1540题目大意:给定两个整数N,M, 其中N表示一共有N个村庄,M代表有M次操作,操作有以下:1. D x 销毁村庄x2. Q x 询问与村庄x相邻的村庄总数3. R 最近一次销毁的村庄得到重建问题分析:对于N个村庄,可以建立一颗线段树,维护最大连续区间长度,操作分析:在线段树上找到x节点,并将x节点“销毁”(村庄x被销毁),然后分别更新与x节点(村庄x)相关联的节点值(这里指左右连续区间的长度)对于询问操作,显然这里要求返回的是存在x的最大左右连续区间长度和将村庄x恢复(具体到重置线段的覆盖标志),并更新与村庄x相关联的最大连续区间和具体实现:对于有N个村庄,可以建立区间为[1,
阅读全文
摘要:一开始提交后得到了好几个WA,搞得我一直很郁闷,于是重新看了一下题目,发现有一个地方我没有考虑到Note that one message can appear twice or more and if two messages have the same priority, the one comes first will be processed first.(i.e., FIFO for the same priority.)意思是一段信息可以重复出现,并且如果两串信息的优先级相同,则输出先输入的字符串思路:建立一个最小堆,维护字符串的优先级,其中维护操作如下:如果两串字符串的优先级相同
阅读全文
摘要:原文链接:http://www.cnitblog.com/cockerel/archive/2006/09/13/16806.html相信对算法设计或者数据结构有一定了解的人对线段树都不会太陌生。它是能够在log(MaxLen)时间内完成线段的添加、删除、查询等操作。但一般的实现都有点复杂(我自写的是要递归的,比较多行)。而线段树应用中有一种是专门针对点的。(点树?)它的实现却非常简单。 这种数据结构有什么用?我们先来考虑一下下面的需求(全部要求在LogN时间内完成):如何知道一个点在一个点集里的大小“排名”?很简单,开一个点数组,排个序,再二分查找就行了;如何在一个点集内动态增删点?也很简.
阅读全文
摘要:最近一直在看胡浩的【完全版】线段树,这个题目是在他的blog介绍的文字没有参考别人的成分题目大意:Hotel有N(1 ≤ N ≤ 50,000)间rooms,并且所有的rooms都是连续排列在同一边,groups需要check in 房间,要求房间的编号为连续的r..r+Di-1并且r是最小的;visitors同样可能check out,并且他们每次check out都是编号为Xi ..Xi +Di-1 (1 ≤ Xi ≤ N-Di+1)的房间,题目的输入有两种样式:1 a : groups需要check in a间编号连续的房间2 a b : visitors check out 房间,其中
阅读全文
摘要:线段树----成段更新题目唯一需要注意的地方是 延迟标志 的那个地方 1 #include <stdio.h> 2 3 #define lson l, m, rt<<1 4 #define rson m+1, r, rt<<1|1 5 6 const int maxn = 100004; 7 8 char cmd[2]; 9 int n, mNum, a, b, c;10 __int64 sum[maxn<<2]={0}, col[maxn<<2]={0};11 12 void BuildTree(int l, int r, int
阅读全文
摘要:题目中文的,不解释了维护一个最大值的线段树 1 #include <stdio.h> 2 3 #define lson l, m, rt<<1 4 #define rson m+1, r, rt<<1|1 5 6 const int maxn = 200000; 7 8 char cmd[2]; 9 int n, mNum, a, b, max[maxn<<2];10 11 int Max(int x, int y)12 {13 return (x>y ? x:y);14 }/* Max */15 16 void BuildTree(int
阅读全文

浙公网安备 33010602011771号