求助,出现了奇怪的报错
  • 板块学术版
  • 楼主EnriqueYXH
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/3/5 07:57
  • 上次更新2023/10/28 07:17:25
查看原帖
求助,出现了奇怪的报错
497711
EnriqueYXH楼主2022/3/5 07:57

不是很懂

这是报错的

#include <iostream>
#include <cstdio>
#define k1 (k << 1)
#define k2 (k << 1 | 1)
using namespace std;
typedef long long ll;
ll read() {
	ll x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {if (ch == '-') f = -1;ch = getchar();}
	while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
	return x * f;
}
const int N = 1e5 + 5;
ll T, q, mod;
struct Seg_Tree{
	ll l, r, val;
}t[N << 2];
void build(ll k, ll l, ll r) {
	t[k].l = l, t[k].r = r;
	if (l == r) t[k].val = 1;
	ll mid = (l + r) >> 1;
	build(k1, l, mid);
	build(k2, mid + 1, r);
}
void change(ll k, ll t, ll v) {
	ll l = t[k].l, r = t[k].r;
	if (l == r) {
		t[k].val = (!v) ? 1 : v;
		return;
	}
	ll mid = (l + r) >> 1;
	if (t <= mid) change(k1, t, v);
	else change(k2, t, v);
	t[k].val = t[k1].val * t[k2].val % mod;
}

这是未报错的

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
ll read() {
	ll x = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9') {if (ch == '-') f = -1;ch = getchar();}
	while (ch >= '0' && ch <= '9') {x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
	return x * f;
}
const int N = 1e5 + 5;
ll n, m, a[N];
struct Segment_Tree{
	ll l, r, sum, tag;
}t[N << 2];
void build(ll k, ll l, ll r) {
	t[k].l = l, t[k].r = r;
	if (l == r) {
		t[k].sum = a[l];
		return;
	}
	ll mid = (l + r) >> 1;
	build(k << 1, l, mid);
	build(k << 1 | 1, mid + 1, r);
	t[k].sum = t[k << 1].sum + t[k << 1 | 1].sum;
}
void push_down(ll k) {
	ll k1 = (k << 1), k2 = (k << 1 | 1);
	t[k1].sum += t[k].tag * (t[k1].r - t[k1].l + 1);
	t[k2].sum += t[k].tag * (t[k2].r - t[k2].l + 1);
	t[k1].tag += t[k].tag, t[k2].tag += t[k].tag;
	t[k].tag = 0;
}
void change(ll k, ll c_l, ll c_r, ll v) {
	ll l = t[k].l, r = t[k].r;
	if (c_l <= l && r <= c_r) {
		t[k].sum += v * (t[k].r - t[k].l + 1);
		t[k].tag += v;
		return;
	}
	if (t[k].tag) push_down(k);
	ll mid = (l + r) >> 1;
	if (c_l <= mid) change(k << 1, c_l, c_r, v);
	if (c_r > mid) change(k << 1 | 1, c_l, c_r, v);
	t[k].sum = t[k << 1].sum + t[k << 1 | 1].sum;
}
ll query(ll k, ll q_l, ll q_r) {
	ll l = t[k].l, r = t[k].r;
	if (q_l <= l && r <= q_r) return t[k].sum;
	if (t[k].tag) push_down(k);
	ll mid = (l + r) >> 1, res = 0;
	if (q_l <= mid) res += query(k << 1, q_l, q_r);
	if (q_r > mid) res += query(k << 1 | 1, q_l, q_r);
	return res;
}
2022/3/5 07:57
加载中...