9月7日

来源:互联网 发布:c语言编程训练题 编辑:程序博客网 时间:2024/04/28 18:17
        这几天主要看博客与课件,首先看吧位运算符搞清楚了,毕竟好多代码都用位运算符,表示大佬们说位运算符可以节约时间,假装是这样。接着看博客mayor‘s posters这道题题意给每个区间贴纸,后面贴的会覆盖前面贴的,问最后能看到的纸有几张,线段树区间更新的问题,但是数量太大要进行离散化,第一次离散区间,想了半天最后看代码才弄明白主要要吧本来不相邻的数继续保持不相邻就可以了,,然后再一次set线段树操作,最后求出线段树中一共有多少种不同的值就可以了。A Simple Problemwith Integers这道题有一个n个数的序列,有两种操作1 a b k c 在区间[a,b]内的i,如果满足(条件那么第i个数就加上c,2 a问第a个数的值是什么,首先给出n个数的初始值,然后是q次操作,完成每次操作,如果是询问的话,输出那个值。一道区间add,区间查询的模板仔细看了一下。最后看"Ray, Pass methe dishes!"这道题,题意是给出一个长度为n的整数序列D,你的任务是对m各询问做出回答。对于询问(a,b),需要找到两个下标x和y,使得a<=x<=y<=b,并且Dx+Dx+1+...+Dy尽量大。如果有多组满足条件的x和y,x应该尽量小。如果还有多解,y应该尽量小。就是要建立一颗线段树维护三种信息最大连续和的子区间,最大前缀和区间的右端坐标,最大后缀和区间的左端坐标不过思想不好想,并不知道线段树还可以那么巧的应用。