这个周末进行了最后两个网络赛,很惭愧,就做出的那么两道题太丢人了。尤其是昨天那场,一道超简单的水题,刚学完的线段树WA了无数次,太惭愧了。
昨天的比赛A题,旅游,计划待m天,但是其中有一些天交通管制,不能出去,到北京有多少天交通管制,计划待的天数就加几,其中到达北京的第一天和其余m-1天中得一天没有交通管制的时刻去参观北京大学,每一天都有一个权值,要求使得求得的权值和最小,问参观北京大学的那两天是哪两天?这个题是就是暴力解的签到题。另外I题是个典型的线段树,看到这题时我还有点开心,然而也许是有点困,先读错题意,又分析题考虑不足。。。I题就是给一个一维数组,1,n,m,就是查询第n个数到第m个数中找两个数(可以是同一个数)相乘最小。2,n,m就是把第n个数改成m。这个题一定看清题目,数组中的数可以是负数或正数,如果该区间只有负数,找出区间最大值相乘,如果只有正数,找出区间最小值相乘,如果既有正数又有负数,找出最大与最小值相乘。就是建立两棵线段树找出区间最大最小值,利用最大最小值判断该区间里正负数,然后相应的操作就行了。
今天,做的两道题第一道有n(最大100)个火车站点,x,y,表示乘客从x站上从y站下,找出最少需要多少座,乍一看我想用线段树做,可100的数据量,签到题无疑,我是用类似扫描线的思想过的,将区间出现的所有点用结构体存储,标记上下位边,区间值,按照点的先后位置排序(如果同一位置多点,上位边排前面),依次更新,上位边加,下位边减,找出中途最大值输出,注意末尾下车站点不计座位累加。另一道题就是纯线段树扫描线,计算总覆盖面积,注意离散化处理。
总的来说,自己的表现这几场比赛和ccpc那次一样惨,确实是警钟敲响,也明白接下来自己该怎么做了。