为什么Compile Error?

P3373 【模板】线段树 2

@[xiaoyu1013](/user/556492) 似乎可能也许大概```now```不能做变量名
by _Adolf_Hitler_ @ 2023-08-19 13:52:51


在自己的电脑上编译成功了,在网上没找到答案
by xiaoyu1013 @ 2023-08-19 13:53:54


@[xiaoyu1013](/user/556492) 还有,你```inline```后再跟个```int```吧
by _Adolf_Hitler_ @ 2023-08-19 13:54:48


@[JODAN_POOLE](/user/931106) 不是
by siyuan_zhou @ 2023-08-19 13:55:07


@[xiaoyu1013](/user/556492) 你的 lson,rson 没有返回值类型
by 5t0_0r2 @ 2023-08-19 13:55:27


![](https://img1.imgtp.com/2023/08/19/up4tRvO1.png)
by siyuan_zhou @ 2023-08-19 13:58:20


我要比赛了,没空了
by siyuan_zhou @ 2023-08-19 13:59:19


可以编译了,谢谢大佬
by xiaoyu1013 @ 2023-08-19 14:05:16


```cpp #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read() { char c = getchar(); ll ans = 0; while(!isdigit(c)) c = getchar(); while(isdigit(c)) { ans = ans * 10 + c - '0'; c = getchar(); } return ans; } ll n,q,mod,x,y,z,ly; struct Plant { ll value,add,mul; } tree[100005 * 4]; ll a[100005]; inline int lson(ll sb) { return sb<< 1; } inline int rson(ll sb) { return sb << 1 | 1; } inline int add_down(ll sb,ll nl,ll nr) { ll mid = (nl + nr) >> 1; tree[lson(sb)].value = (tree[lson(sb)].value + (mid - nl + 1) * tree[sb].add) % mod; tree[rson(sb)].value = (tree[rson(sb)].value + (nr - mid) * tree[sb].add) % mod; tree[lson(sb)].add = (tree[lson(sb)].add + tree[sb].add) % mod; tree[rson(sb)].add = (tree[rson(sb)].add + tree[sb].add) % mod; tree[sb].add = 0; } inline int mul_down(ll sb,ll nl,ll nr) { ll mid = (nl + nr) >> 1; tree[lson(sb)].mul = (tree[lson(sb)].mul * tree[sb].mul) % mod; tree[rson(sb)].mul = (tree[rson(sb)].mul * tree[sb].mul) % mod; tree[lson(sb)].value = (tree[lson(sb)].value * tree[sb].mul) % mod; tree[rson(sb)].value = (tree[rson(sb)].value * tree[sb].mul) % mod; tree[lson(sb)].add = (tree[lson(sb)].add * tree[sb].mul) % mod; tree[rson(sb)].add = (tree[rson(sb)].add * tree[sb].mul) % mod; tree[sb].mul = 0; } inline void push_down(ll sb,ll nl,ll nr) { if(tree[sb].mul != 0) mul_down(sb,nl,nr); add_down(sb,nl,nr); } inline void push_up(ll sb) { tree[sb].value = (tree[lson(sb)].value + tree[rson(sb)].value) % mod; } void build(ll sb,ll nl,ll nr) { if(nl == nr) { tree[sb].value = a[nl]; return ; } ll mid = (nl + nr) >> 1; build(lson(sb),nl,mid); build(rson(sb),mid + 1,nr); push_up(sb); } void add_update(ll sb,ll nl,ll nr,ll l,ll r,ll k) { if(nl > r || nr < l) return ; if(l <= nl && nr <= r) { tree[sb].value = (tree[sb].value + (nr - nl + 1) * k) % mod; tree[sb].add = (tree[sb].add + k) % mod; return ; } push_down(sb,nl,nr); ll mid = (nl + nr) >> 1; if(l <= mid) add_update(lson(sb),nl,mid,l,r,k); if(mid + 1 <= r) add_update(rson(sb),mid + 1,nr,l,r,k); push_up(sb); } void mul_update(ll sb,ll nl,ll nr,ll l, ll r,ll k) { if(nl > r ||l > nr) return ; if(l <= nl && nr <= r) { tree[sb].value = (tree[sb].value * k) % mod; tree[sb].add = tree[sb].add * k % mod; tree[sb].mul = tree[sb].mul * k % mod; return ; } push_down(sb,nl,nr); ll mid = (nl + nr) >> 1; if(l <= mid) mul_update(lson(sb),nl,mid,l,r,k); if(mid + 1 <= r) mul_update(rson(sb),mid + 1,nr,l,r,k); push_up(sb); } ll quiry(ll sb,ll nl,ll nr,ll l,ll r ) { if(nl > r || l > nr) return 0; if(l <= nl && nr <= r) return tree[sb].value; push_down(sb,nl,nr); ll mid = (nl + nr) >> 1; return (quiry(lson(sb),nl,mid,l,r) + quiry(rson(sb),mid + 1,nr,l,r)) % mod; } int main() { n = read(); q = read(); mod = read(); for(int i = 1; i <= n; i++) { a[i] = read(); } build(1,1,n); for(int i = 1; i <= q; i++) { ly = read(); if(ly == 1) { x = read(); y = read(); z = read(); mul_update(1,1,n,x,y,z); } if(ly == 2) { x = read(); y = read(); z = read(); add_update(1,1,n,x,y,z); } if(ly == 3) { x = read(); y = read(); printf("%lld\n",quiry(1,1,n,x,y)); } } return 0; } ``` 这个编译能过
by _Adolf_Hitler_ @ 2023-08-19 14:05:49


|