lazy_segtree<S, op, e, F, mapping, composition, id>seg(intn);lazy_segtree<S, op, e, F, mapping, composition, id>seg(vector<S> v); 前半部分是相同的: S是一个结构体,包含了所有你的标记和答案所需要维护的半群信息。 op是一个函数S op(S x, S y),表示将信息xx左乘信息yy合并在一...
#include <atcoder/lazysegtree> #include <atcoder/string> 数学 #include <atcoder/math> 图论 #include <atcoder/twosat> 附录 附录/常见问题解答 测试 您可以在此处测试此库。 执照 文件atcoder夹中的头文件是根据CC0许可证授权的。有关atcoder/LICENSE详细信息,请参见。 The desire of his soul is th...
1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;5typedeflonglongll;6constintmaxn=1e5+5;7intn,m;8ll s[maxn],len[maxn],dp[maxn],t[maxn];9classsegTree{10inta[maxn],s[maxn*4],lazy_tag[maxn*4];11public:12segTree(){13memset(a,0,sizeof(a));14}15vo...
{ int n, m, q; cin >> n >> m >> q; LazySegmentTree<Info, int> seg(m); vector<int> op(q), l(q), r(q), x(q); for (int i = 0; i < q; i ++) { cin >> op[i]; if (op[i] == 1) { cin >> l[i] >> r[i] >> x[i]; l[i] --; r[i] --; } ...
q = MI() V = [[0 for _ in range(6)] for _ in range(n)] A = LII() for i, a in enumerate(A): V[i][a] = 1 segtree = lazy_segtree(V, op, e, mapping, composition, id) for _ in range(q): t, l, r, *a = MI() l -= 1 if t == 1: print(sum(segtree.pr...
#include <atcoder/lazysegtree> #include <atcoder/string> 数学 #include <atcoder/math> #include <atcoder/convolution> ???#include <atcoder/modint> 图论 #include <atcoder/maxflow> #include <atcoder/mincostflow> #include <atcoder/scc> #...
Segtree { ll l[N*4],r[N*4],lazy[N*4]; ll sum[N*4]; void build(ll x,ll ql,ll qr) { l[x]=ql; r[x]=qr; if (ql==qr) { sum[x]=1; return; } ll mid=(ql+qr)>>1; build(x*2,ql,mid); build(x*...
#include <atcoder/segtree> #include <atcoder/lazysegtree> #include <atcoder/string>数学#include <atcoder/math> #include <atcoder/convolution> 💻#include <atcoder/modint>图论#include <atcoder/dsu> #include <atcoder/maxflow> #include <atcoder/mincostflow> #include <atcoder/scc> #includ...
模拟即可。 神奇的代码 #include<bits/stdc++.h> usingnamespacestd; usingLL =longlong; intmain(void){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); intn; cin >> n; while(n--){ intx; cin >> x; if(!(x &1)) ...
因为我们需要快速计算sum(l,r),所以实际上我们可以使用前缀和sum[i],而非dp[i]。 O(NK) #include<bits/stdc++.h>usingll =longlong;usingnamespacestd;constll mod =998244353;intmain(){ ios_base::sync_with_stdio(false), cin.tie(0);intn, k; ...