strcmp函数的实现

int __cdecl strcmp ( const char * src, const char * dst ) { int ret = 0 ; while( ! (ret = *(unsigne

2011-09-27 13:33:35

阅读数:751

评论数:0

hdu 3265 Posters(扫描线)

题意:给出几个缕空的矩形,要求他们的面积的并。 把一个矩形拆成四个矩形,那么直接就可以套用前面的了。 有几个需要注意的地方,答案会超int。如果直接更新到叶子结点,会超时。因为x1 #include #include #include using namespac

2011-09-27 01:30:06

阅读数:859

评论数:0

POJ 1177 Picture & hdu 1828 Picture(扫描线)

题意:给你n个矩形,要你求出矩形并的轮廓周长。 在做这题之前,建议先解决POJ1151。 在求矩形并面积的时候,我们记录了线段投影到y轴上被覆盖的长度,这题同样要记录这个值以得到y轴上属于轮廓的边长(当然,不是简单地把这个长加进去,而是加变化值)。不同的是,还要记录,y轴上有连续的几段。比如,...

2011-09-27 00:06:28

阅读数:2068

评论数:0

POJ 1151 Atlantis(扫描线)

题意:给你n个矩形,每个矩形给出左下点的坐标,右上点的坐标。最后以n=0为结束。要你求出矩形并后的面积。          扫描线。 在陈宏的论文里这么定义超元线段:根据每个矩形纵向边的横坐标纵向地对平面进行2*n次切割、根据矩形横向边的纵坐标横向地对矩形进行2*n次切割(n为矩形个数),切割后...

2011-09-26 12:38:45

阅读数:3101

评论数:1

hdu 2871 Memory Control(成段更新,区间合并)

题意:给n个单位内存(编号从1开始),有几种操作:Reset把所有的内存清空,然后输出“Reset Now”。New x申请一块长度为x的内存块(如多解,左边优先),然后输出“New at A”。Free x把包含第x块单位内存的内存块清除,然后输出“Free from A to B”。Get x...

2011-09-25 22:49:43

阅读数:1285

评论数:0

hdu 1540 Tunnel Warfare(单点更新,区间合并)

题意:给你n连成一条线的点,m个操作。D x把第x个村庄破坏,Q x查询与第x个村庄直接和间接相连的村庄数目(包括它自己),R把最早破坏的一个村庄恢复。         除了下面的另一种方法外,现在再做的时候,想到了另一种方法,在查询的时候,更新查找到的范围的左右端点。 /*代码风格更新后*/...

2011-09-25 21:49:42

阅读数:1052

评论数:0

POJ 3667 Hotel(成段更新,区间合并)

题意:有N个房间,M次操作。1 a表示找到连续的长度为a的空房间,如果有多解,优先左边的,即表示入住。2 b len把起点为b长度的len的房间清空,即退房。 用co作为延迟标记,如果为-1表示当前区间是两个状态,如果是0表示一种状态,即区间内都没有人入住,如果是1也表示一种状态,表示满客。在线...

2011-09-25 19:42:32

阅读数:1659

评论数:0

hdu 3308 LCIS(单点更新,区间合并)

题意:给你n个整数,有两种操作,U A B把第A个数变成B,Q A B查询区间[A,B]的最长连续上升序列。          在线段树的节点里保留了端点的值即lval,rval。同时维护左端点最长的上长序列的长度lmx,右端点的最长的下降序列的长度rmx,以及这个区间的最长上升序列的长度mx。...

2011-09-25 19:05:49

阅读数:1461

评论数:0

hdu 3397 Sequence operation(区间合并)

题意:首先t表示有几组数据,然后n,m表示有n个数,m组操作,接着给你n个0或1的数字,,最后是操作0 a b表示把区间[a,b]里的数都变成0,1 a b把区间[a,b]里的数都变成1,2 a b表示把区间[a,b]里的1变成0,0变成1,3 a b表示[a,b]输出1的数目,4 a b表示输出...

2011-09-25 18:12:24

阅读数:1273

评论数:0

POJ 3468 A Simple Problem with Integers(成段更新)

题意:题目给你n个数,m个操作,接下来一行给你这n个数,接下的几行给出m个操作,Q a b 表示查询区间[a,b]里的数和和。U a b c 表示把区间[a,b]里的数都加上c。 同样使用延迟标记add。当add不等于0的时候,表示它以下所有区间都需要更新。因为我们没有去改变原始查询区间的区间端...

2011-09-24 23:46:33

阅读数:2719

评论数:0

hdu 1698 Just a Hook(成段更新)

题意:有t组测试数据,n为钩子长度(1        使用了延迟标记type,表示当前区间的左右子儿子的价值为type,在更新到当前区间时,同时更新当前区间的valu,即type*当前区间的长度。 /*代码风格更新后*/ #include #include #include using ...

2011-09-24 22:55:52

阅读数:2379

评论数:0

POJ 2828 Buy Tickets(单点更新)

题意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。 逆向思维。我们可以这样考虑,最后一个人一定会得到当前队伍他想要的位置,如果我们往前一个阶段,倒数第二个人也一定能得到他想要的位置……,也就是说,我们可以这样处理,我们把最...

2011-09-24 22:25:06

阅读数:1710

评论数:0

uva 400 Unix ls

题意:给你一堆文件名,要你以列优先输出,每个文件名的长度是最大的那个文件名的长度(也就是是长度不够的,你要在它后面加些空格),且同一行的两个文件名之间还要有两个空格。 #include #include #include #include using namespace

2011-09-24 13:54:24

阅读数:1118

评论数:0

uva 123 Searching Quickly

题意:给你些要忽略的单词,然后给你几个句子,找出非忽略单词,然后按照非忽略单词的字典序输出非忽略单词所在的句子,注意,非忽略单词要大写民,其他单词要小写,如果一个句子中出现多个非忽略单词,先输出左边的,再输出右边的。 感觉做得比较麻烦,把句子拆成单词,先找出非忽略单词,然后再用

2011-09-24 13:20:47

阅读数:1100

评论数:0

uva 10194 Football (aka Soccer)

题意:给你比赛的情况,要你给出一个排名,排名先按积分高低,赢的次数多寡,赢的球减去输的球的值的高低,赢的球的多寡,打的比赛最少,最后按字典序输出(这里特别注意是不区间大小写的)。 #include #include #include #include #includ

2011-09-23 16:16:52

阅读数:922

评论数:0

uva 755 487--3279

题意:给你字母对应的数字,和包含字母与数字的字符串,要你把它们转化成标准格式(即只包含数字且数字中间含‘-’),然后输出有重复出来的,且输出它们的重复次数。 要注意的是,可以出现全部是0的字符串,还有边界的处理也要小心(比较最后一个和倒数第二个也相同的情况)。 #includ

2011-09-22 23:53:24

阅读数:597

评论数:0

uva 10785 The Mad Numerologist

题意:题目给了每个字母权值,然后给你所要的字符串的长度,要你输出一个权值最小的,并规定奇数位上只能是辅音字母,偶数位上只能是原音字母,然后比较坑人的是,在保证权值最小的情况下,还要字典序最小。 #include #include #include #include us

2011-09-22 23:11:25

阅读数:734

评论数:0

uva 156 Ananagrams

题意:要你找出这样的单词,单词里面的字母不区分大小写,然后字母重排之后只出现一次的单词,找出之后,还是输入的样子以字典序输出(用来存放单词的个数起先用100WA了,开到1000AC。。。) #include #include #include #include

2011-09-22 01:00:36

阅读数:856

评论数:0

uva 120 Stacks of Flapjacks

题意:给你一串数字,按照一个规则从小到大排序,规则是:你只能选择一个位置,然后把这个位置以上的全部数字反过来。 先排序,然后从后往前扫,如果不是排序后的位置,则往前找,找到了,如果不是在0位置,那么,把它先翻到0位置,然后再翻回来。 #include #include #

2011-09-21 23:57:07

阅读数:1067

评论数:0

uva 299 Train Swapping

题意:计算逆序对的个数。 #include #include #include using namespace std; int a[60]; int main() { int t; scanf("%d",&t); while(t--) ...

2011-09-20 22:45:12

阅读数:520

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭