随笔分类 -  树状数组

摘要:题意:有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟。 分析: 1、数组大小开为100000*2,后100000个位置放初始的n个影碟,每次看完一个影碟后,依次向前放在前100000个位置中。 2、将放置影碟 阅读全文
posted @ 2017-08-18 14:30 Somnuspoppy 阅读(278) 评论(0) 推荐(0)
摘要:题意:已知有n个人,从第一个人开始每个人被安排在第ai个空座上,有m组询问,问某人所坐的位置。 分析: 1、用树状数组维护空座的个数,方法: 将所有的空座初始化为1,sum(x)则表示从座位1到座位x空座的个数。 2、对于每个人,根据sum(mid),二分找使sum(mid)大于等于a[i]的最小的 阅读全文
posted @ 2017-04-01 20:02 Somnuspoppy 阅读(186) 评论(0) 推荐(0)
摘要:题意:对于一个N行N列的矩阵,有两种操作: 1、C x1 y1 x2 y2,将左上角(x1, y1),右下角(x2, y2)的矩阵反转(0变1,1变0)。 2、Q x y询问A[x, y]的值。 分析: 1、将A[x1][y1]加1(翻转一次),可使左上角(x1, y1),右下角(N,N)的矩阵中每 阅读全文
posted @ 2017-03-15 23:45 Somnuspoppy 阅读(174) 评论(0) 推荐(0)