离线操作
人菜瘾大aaabbbb
这个作者很懒,什么都没留下…
展开
-
HDU4630 线段树离线操作 && GCD性质
题意: n个数,m个询问,每次查询一个区间的中任意两个数的最大GCD 思路: 离线操作,按照查询的右端点将查询从小到大排序。预处理出所有数的因子用二维vector保存。遍历整个这n个数,每个数遍历它的因子,如果这个因子在前面出现过,则将这个因子维护到线段树中,并将因子最新出现位更新,如果没有出现过则将当前此因子最新出现的位置标记为当前。线段树用来维护区间的最大因子。因为区间两次以上出现过的最...原创 2019-07-15 18:46:23 · 220 阅读 · 1 评论 -
HDU 4638 线段树离线操作
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; int a[maxn]; struct node{ int l,r,v; }tree[maxn<<2]; struct pp{ int l,r,id; }po[maxn]; int pre[maxn],ans[maxn];...原创 2019-07-24 21:44:27 · 104 阅读 · 0 评论 -
2019 ICPC徐州网络赛I题(区间整除对数 && 树状数组)
题意: 给一个1-n的排列的序列,m次询问,每次询问区间L—R之间内有多少个整除数对。 思路: 首先需要解决统计整除数对的问题,如果1-n是有序的序列,那么很好统计,每次将i加上i一直加到n,每次加到的数即是i的倍数,这个经典的方法即可以得到每个数与这个数成对的整除数对。对于这个题目,n个数是1-n的一个排列,所以需要稍微修改一下这个方法,将整除数对应的下标位置存起来。对于这个题目需要每个...原创 2019-09-12 15:45:53 · 236 阅读 · 0 评论