摘要:1.hud 1166http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 本题目涉及到了区间操作和点操作两种操作。 区间操作(区间和):我们采用了递推的方法来建树,建好了叶子结点之后,我们再回溯来建整个区间。(这个操作是关键) 点操作:点操作必然涉及到区间的改动,我们判定,只要这个点在一个区间上,那么我们就对这个区间操作。View Code #include "iostream"#include "string"#include "algorithm"using namespace s
阅读全文
摘要:其实线段树的数据结构没什么可说的,但是怎么用好它就有得说了。具体的来说就是:首先就是有段关系了,这个是第一位的。接着就是有大小关系了,这个是第二位的。再者就是数据量大,这个是次要的。只要满足了这三个条件,就是用线段树的时候了。如何理解段呢?比如说让你统计小于200的数据有多少个。这个就是段了。至于大小就是小于200的200了。(1)1 3 2 4 5 63 563 23 46 56 23 455 …… 888 这个例子是落在888以前的。(2)当然还是段中段,这个就不解释了。下面来贴出一道相关的题目。http://acm.swust.edu.cn/oj/contest/29/825/View
阅读全文
摘要:Problem DescriptionIn the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.Now Pudge wants to do some operations on the hook.Let us number the consecutive metallic stick
阅读全文
摘要:Problem Description很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的数目。学生ID编号分别从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩。接下来有M行。每一行有一个
阅读全文
摘要:描述在一面很长的墙壁上,工人们用不同的油漆去刷墙,然而可能有些地方刷过以后觉得不好看,他们会重新刷一下。有些部分因为重复刷了很多次覆盖了很多层油漆,toshio很好奇那些地方被刷过多少种颜色的油漆。输入若干行输入,每行两个数字B[i],E[i](0<=B[i]<=E[i]<=200000)表示这次刷的墙壁是哪一段(假设每次刷的时候油漆颜色都和之前的不同),以0 0结束又若干行输入,每行两个数字begin[i],end[i](0<=begin[i]<=end[i]<=200000)表示toshio询问的段,以0 0结束输出对于每个toshio的询问输出(end
阅读全文