x玄2关

灌水区

在update函数的else分支中,更新左子树和右子树时应该传递参数x而不是k。请将以下行代码: ``` update(2*u,L,mid,l,r,x); update(2*u+1,mid+1,R,l,r,x); ``` 更正为: ``` update(2*u,L,mid,l,r,x); update(2*u+1,mid+1,R,l,r,x); ``` 不知道对不对……
by __Sam__ @ 2024-04-25 21:56:47


@[smile_jyc](/user/1246532) 等等,好像是一样的……
by __Sam__ @ 2024-04-25 21:57:56


怎么感觉像jpt
by shin_chan_jiang @ 2024-04-25 21:59:37


@[smile_jyc](/user/1246532) 你试试我这个,应该可以,函数写的很清楚了 ``` #include <iostream> #include <vector> #include <limits> using namespace std; // 更新数列中某一段的值 void updateSegment(vector<int>& nums, int left, int right) { for (int i = left; i <= right; i++) { nums[i]++; } } // 查询数列中某一段的最小值 int querySegmentMin(const vector<int>& nums, int left, int right) { int minVal = numeric_limits<int>::max(); for (int i = left; i <= right; i++) { minVal = min(minVal, nums[i]); } return minVal; } int main() { int n, m; cin >> n >> m; vector<int> nums(n); for (int i = 0; i < n; i++) { cin >> nums[i]; } for (int i = 0; i < m; i++) { int operation, left, right; cin >> operation >> left >> right; if (operation == 1) { updateSegment(nums, left - 1, right - 1); } else if (operation == 2) { int minVal = querySegmentMin(nums, left - 1, right - 1); cout << minVal << endl; } } return 0; } ```
by __Sam__ @ 2024-04-25 22:00:38


@[__Sam__](/user/825033) 首先,这段代码很明显是 AI 生成的 其次,这是个暴力代码,lz 要的是线段树啊
by xsmfollower @ 2024-04-25 22:07:22


@[xsmfollower](/user/1308728) 是的
by __Sam__ @ 2024-04-25 22:09:04


@[xsmfollower](/user/1308728) 暴力也不是不行 ~~吧~~
by __Sam__ @ 2024-04-25 22:09:43


“n<=100000”“暴力也不是不行吧”
by xsmfollower @ 2024-04-25 22:11:20


@[smile_jyc](/user/1246532) https://www.luogu.com/paste/h1vb4lf6
by focus_costan1 @ 2024-04-25 22:51:19


@[__Sam__](/user/825033) 发 ai 生成的代码前自己先验证一下啊喂
by Hatsunatsu @ 2024-04-26 07:08:53


|