离线处理
酷酷的Herio
这个作者很懒,什么都没留下…
展开
-
F. Graph and Queries(反向并查集&dfs序&线段树)
F. Graph and Queries(反向并查集&dfs序&线段树)思路:反向并查集+dfs+dfs+dfs序+++线段树对询问进行离线操作,从后往前,最开始建立一张删除所有询问边后的图,然后倒着重构图,如果是操作一就更新查询结点为其祖先结点:Q[i].se=find(Q[i].se)Q[i].se=find(Q[i].se)Q[i].se=find(Q[i].se)如果是操作二就利用并查集建立新结点连边,具体就是新建立一个结点其儿子为这条边的两个结点,父亲也同时更新为该新结点。原创 2020-10-04 13:46:49 · 388 阅读 · 0 评论 -
P1903 [国家集训队]数颜色 / 维护队列(带修莫队)
P1903 [国家集训队]数颜色 / 维护队列(带修莫队)思路:待修改莫队,增加一个时间戳,来维护当前询问的修改次数,如果修改多了就还原,否则修改到当前次数。时间复杂度:O(n53)O(n^{\small\dfrac{5}{3}})O(n35)具体看代码,我也是第一次写。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+5,M=2e4+5,inf=0x3f3f3f3f,m原创 2020-07-23 14:18:52 · 324 阅读 · 0 评论 -
P2709 小B的询问 (莫队)
P2709 小B的询问 (莫队)思路:离线莫队裸题,只不过贡献转化一下就可以。从x→(x+1) △x=(x+1)2−x2=(2x−1)x\rightarrow (x+1)\ \ \triangle x=(x+1)^2-x^2=(2x-1)x→(x+1) △x=(x+1)2−x2=(2x−1)。从(x+1)→x △x=2x+1(x+1)\rightarrow x\ \ \triangle x=2x+1(x+1)→x原创 2020-07-23 13:00:11 · 320 阅读 · 0 评论 -
P3901 数列找不同(莫队)
P3901 数列找不同(莫队)思路:询问转离线排序普通莫队。时间复杂度:O(nn)O(n\sqrt{n})O(nn)貌似树状数组或者主席树都能做。。第一次写板子把代码注释的详细一下。#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;#define ms原创 2020-07-23 12:43:49 · 351 阅读 · 0 评论