怎么在国外网站赚钱,杭州会做网站,建站公司网站模版,做网站的流程分析-图灵吧https://codeforces.com/gym/104095/problem/J 分析操作一
100 ,010#xff0c;aiqmi(2,24),说明每个数最多操作25次
维护区间或和#xff0c;orsum x orsum 就不用递归下去了
势能线段树code
// Problem: J. 二进制与、平方和
// Contest: Codeforc…https://codeforces.com/gym/104095/problem/J 分析操作一
100 ,010aiqmi(2,24),说明每个数最多操作25次
维护区间或和orsum x orsum 就不用递归下去了
势能线段树code
// Problem: J. 二进制与、平方和
// Contest: Codeforces - 2020 CCPC Henan Provincial Collegiate Programming Contest
// URL: https://codeforces.com/gym/104095/problem/J
// Memory Limit: 512 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)#includebits/stdc.h
using namespace std;
typedef long long ll;
typedef long long LL;
const int N3e59;
const int mod998244353;
int a[N];
templateclass T
constexpr T power(T a, LL b) {T res 1;for (; b; b / 2, a * a) {if (b % 2) {res * a;}}return res;
}templateint P
struct MInt {int x;constexpr MInt() : x{} {}constexpr MInt(LL x) : x{norm(x % getMod())} {}static int Mod;constexpr static int getMod() {if (P 0) {return P;} else {return Mod;}}constexpr static void setMod(int Mod_) {Mod Mod_;}constexpr int norm(int x) const {if (x 0) {x getMod();}if (x getMod()) {x - getMod();}return x;}constexpr int val() const {return x;}explicit constexpr operator int() const {return x;}constexpr MInt operator-() const {MInt res;res.x norm(getMod() - x);return res;}constexpr MInt inv() const {assert(x ! 0);return power(*this, getMod() - 2);}constexpr MInt operator*(MInt rhs) {x 1LL * x * rhs.x % getMod();return *this;}constexpr MInt operator(MInt rhs) {x norm(x rhs.x);return *this;}constexpr MInt operator-(MInt rhs) {x norm(x - rhs.x);return *this;}constexpr MInt operator/(MInt rhs) {return *this * rhs.inv();}friend constexpr MInt operator*(MInt lhs, MInt rhs) {MInt res lhs;res * rhs;return res;}friend constexpr MInt operator(MInt lhs, MInt rhs) {MInt res lhs;res rhs;return res;}friend constexpr MInt operator-(MInt lhs, MInt rhs) {MInt res lhs;res - rhs;return res;}friend constexpr MInt operator/(MInt lhs, MInt rhs) {MInt res lhs;res / rhs;return res;}friend constexpr std::istream operator(std::istream is, MInt a) {LL v;is v;a MInt(v);return is;}friend constexpr std::ostream operator(std::ostream os, const MInt a) {return os a.val();}friend constexpr bool operator(MInt lhs, MInt rhs) {return lhs.val() rhs.val();}friend constexpr bool operator!(MInt lhs, MInt rhs) {return lhs.val() ! rhs.val();}
};template
int MInt0::Mod 998244353;templateint V, int P
constexpr MIntP CInv MIntP(V).inv();constexpr int P 998244353;
using Z MIntP;const int mxn 2e5 10;
struct SNSEG{#define ll long long #define tl(id) (id1)#define tr(id) (id1|1)#define li inlinestruct node{Z pfval;int orsum;}seg[N2];#define pushup(id) seg[id].pfvalseg[tl(id)].pfvalseg[tr(id)].pfval, seg[id].orsumseg[tl(id)].orsum|seg[tr(id)].orsum;li int inrange(int L,int R,int l,int r){return Ll Rr;}li int outofrange(int L,int R,int l,int r){return Lr || lR;}li void build(int id,int l,int r){if(lr){seg[id].pfval1ll*a[l]*a[l];// seg[id].vala[l];seg[id].orsuma[l];return;}int mid(lr)1;build(tl(id),l,mid);build(tr(id),mid1,r);pushup(id);}li Z query(int id,int L,int R,int l,int r){if(inrange(L,R,l,r)){return seg[id].pfval;}else if(!outofrange(L,R,l,r)){int mid(LR)1;return query(tl(id),L,mid,l,r)query(tr(id),mid1,R,l,r);}else{return 0;}}li void modify(int id,int L,int R,int l,int r,int x){if(LR){// seg[id].valx;seg[id].orsumx;//修改seg[id].pfval1ll*seg[id].orsum*seg[id].orsum;return;}int mid(LR)1;if(midl (seg[tl(id)].orsumx)!(seg[tl(id)].orsum)){modify(tl(id),L,mid,l,r,x);}if(midr (seg[tr(id)].orsumx)!(seg[tr(id)].orsum)){modify(tr(id),mid1,R,l,r,x);}pushup(id);}
}t;
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int n;cinn;for(int i1;in;i){cina[i];}t.build(1,1,n);int q;cinq;for(int i1;iq;i){int op;cinop;if(op1){int l,r,x;cinlrx;t.modify(1,1,n,l,r,x);}else{int l,r;cinlr;coutt.query(1,1,n,l,r)\n; }// for(int i1;in;i){// coutt.ask(1,1,n,i) ;// }// cout\n;}return 0;
}