随笔分类 -  数据结构 - 树状数组

摘要:https://codeforces.com/contest/1328/problem/F 首先把a数组处理成pair对(num,cnt),表示数字num有cnt个,然后按num升序排序离散化一下。 对于一个数x,若想使得小于x的数字都变成x,必须先把所有小于x的数变成x-1,然后再+1变成x。 同 阅读全文
posted @ 2020-03-28 23:47 AaronChang 阅读(175) 评论(0) 推荐(0)
摘要:https://codeforces.com/problemset/problem/1311/E 题目点对追击问题可以抽象成两个一次函数相交问题,y = v*t+xi,xi为y轴上的截距,v是斜率,那么当且仅当两个函数在第一象限相交时,点对的最小距离是0,如果两个点对不在第一象限相交,则点对最小距离 阅读全文
posted @ 2020-02-28 21:33 AaronChang 阅读(203) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/3004/G 发现每个“1”对于它本身位置产生的影响贡献为0,对前面的“1”有产生贡献,对后面的"1"也产生贡献,用三个树状数组去维护,第一个维护“1”的个数,第二个每个“1”的位置,第三个维护“1”的贡献的前缀和,对于每个“1 阅读全文
posted @ 2020-02-14 19:06 AaronChang 阅读(182) 评论(0) 推荐(0)
摘要:链接:https://codeforces.com/contest/1288/problem/E 题意:序列p的长度为n,初始序列为1 2 3 4 ...n,然后有m次操作,每次指定序列中一个数移动到第一位,然后剩下的所有序列往后移动一位,求每个数在出现过的所有历史序列中所在位置索引的最大值和最小值 阅读全文
posted @ 2020-01-19 01:25 AaronChang 阅读(364) 评论(0) 推荐(0)
摘要:链接:https://codeforces.com/contest/1269/problem/E 题意:给一个序列P1,P2,P3,P4....Pi,每次可以交换两个相邻的元素,执行最小次数的交换移动,使得最后存在一个子段1,2,…,k,这是题目所定义的f(k),题目要求求出所有的f(n),并依次输 阅读全文
posted @ 2020-01-03 23:42 AaronChang 阅读(320) 评论(0) 推荐(0)