树状数组
丶沙鸥
这个作者很懒,什么都没留下…
展开
-
牛客小白月赛39 G-冷静 线性筛最小质因子+树状数组
原题链接 题意: 中文题面,q次查询,每次查询给出n,q,求1-n中可以写成都是大于等于k的质数的乘积的形式的数的个数,即将一个数写成质因子相乘的局面时最小质因子大于等于k,如10 = 25,20 = 225,30 = 23*5。 思路: 线性筛预处理所有数的最小质因子,只要将标记操作时赋值1改为赋值pri[i]就可以了,然后给所有查询按照n升序排序,离线处理插入树状数组查询。 #include<bits/stdc++.h> #define LL long long #define INF IN原创 2021-10-27 10:52:57 · 193 阅读 · 0 评论 -
Codeforces Round #724 (Div. 2) D - Omkar and Medians 树状数组+离散化
原题链接 题意: 已知一个数组a和数组b,bi是a数组中前i个元素的中位数,现在给定b数组,判断是否可以求出a数组 思路: 假设第b[i]前都满足,那么说明此时b[i]就是a数组中的中位数,现在插入b[i+1]会出现两种情况。 1.如果b[i+1]和b[i]之间没有出现过数,那么只要插入一个b[i+1]再根据大小关系插入一个+inf或者-inf就行了2.如果b[i+1]和b[i]之间出现过数,那么仅插入两个数最多只能使中位数移动一位,并不能移到b[i+1]身上,所以这种情况是不行的。 所以直接树状数组查询中原创 2021-10-02 15:32:12 · 86 阅读 · 0 评论