摘要: 题意 "题目链接" 题解 方法1 当时并没有看到树状数组QAQ,就直接用平衡树了。 我们一开始设第一个数字为$1$。 然后对于第$i$个数字,我们把前面值域为$[a[i],i 1]$的数字全部加$1$,同时自己等于$a[i]$,那么就可以完成这个序列的构建,而这个操作我们可以用平衡树随便解决。 时间 阅读全文
posted @ 2019-10-24 21:52 敌敌畏58 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" 题解 这道题目有个很明显的贪心思路就是每次取两个最小的数字,然后合并。 为什么呢,现在有$a include include using namespace std; priority_queue,greater a; int n; int main() { scanf("%d" 阅读全文
posted @ 2019-10-24 21:43 敌敌畏58 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" 题解 我们可以发现最多只有一个位置有奇数,其他的位置的盾牌个数都是偶数,那么我们做一遍前缀和,那么奇数个盾牌的位置以后的前缀和都是奇数,很明显我们可以$O(n)$的时间内算出$0 i$范围内有多少个盾牌,那么我们就二分一下,判断前缀和为奇数的最前的一个位置,就是奇数盾牌的位置。 阅读全文
posted @ 2019-10-24 21:36 敌敌畏58 阅读(237) 评论(0) 推荐(0) 编辑