当前位置: 首页 > news >正文

企业销售网站建设中跃建设集团网站吗

企业销售网站建设,中跃建设集团网站吗,阿里云做网站电话,国内网站建设建设2023-07-26每日一题 一、题目编号 2569. 更新数组后处理求和查询二、题目链接 点击跳转到题目位置 三、题目描述 给你两个下标从 0 开始的数组 nums1 和 nums2 #xff0c;和一个二维数组 queries 表示一些操作。总共有 3 种类型的操作#xff1a; 操作类型 1 为 querie…2023-07-26每日一题 一、题目编号 2569. 更新数组后处理求和查询二、题目链接 点击跳转到题目位置 三、题目描述 给你两个下标从 0 开始的数组 nums1 和 nums2 和一个二维数组 queries 表示一些操作。总共有 3 种类型的操作 操作类型 1 为 queries[i] [1, l, r] 。你需要将 nums1 从下标 l 到下标 r 的所有 0 反转成 1 或将 1 反转成 0 。l 和 r 下标都从 0 开始。 操作类型 2 为 queries[i] [2, p, 0] 。对于 0 i n 中的所有下标令 nums2[i] nums2[i] nums1[i] * p 。 操作类型 3 为 queries[i] [3, 0, 0] 。求 nums2 中所有元素的和。 请你返回一个数组包含所有第三种操作类型的答案。 提示 1 nums1.length,nums2.length 105nums1.length nums2.length1 queries.length 105queries[i].length 30 l r nums1.length - 10 p 1060 nums1[i] 10 nums2[i] 109 示例 1 示例2 四、解题代码 class Solution {struct SegNode {int l, r, sum;bool lazytag;SegNode() {this-l 0;this-r 0;this-sum 0;this-lazytag false;} };class SegTree { private:vectorSegNode arr;public:SegTree(vectorint nums) {int n nums.size();arr vectorSegNode(n * 4 1);build(1, 0, n - 1, nums);}int sumRange(int left, int right) {return query(1, left, right);}void reverseRange(int left, int right) {modify(1, left, right);}void build(int id, int l, int r, const vectorint nums) {arr[id].l l;arr[id].r r;arr[id].lazytag false;if(l r) {arr[id].sum nums[l];return;}int mid (l r) 1;build(2 * id, l, mid, nums);build(2 * id 1, mid 1, r, nums);arr[id].sum arr[2 * id].sum arr[2 * id 1].sum;}/* pushdown函数下传懒标记即将当前区间的修改情况下传到其左右孩子结点 */void pushdown(int x) {if(arr[x].lazytag) {arr[2 * x].lazytag !arr[2 * x].lazytag;arr[2 * x].sum arr[2 * x].r - arr[2 * x].l 1 - arr[2 * x].sum;arr[2 * x 1].lazytag !arr[2 * x 1].lazytag;arr[2 * x 1].sum arr[2 * x 1].r - arr[2 * x 1].l 1 - arr[2 * x 1].sum;arr[x].lazytag false;}}/* 区间修改 */void modify(int id, int l, int r) {if (arr[id].l l arr[id].r r) {arr[id].sum (arr[id].r - arr[id].l 1) - arr[id].sum;arr[id].lazytag !arr[id].lazytag;return;}pushdown(id);int mid (arr[id].l arr[id].r) 1;if (arr[2 * id].r l) {modify(2 * id, l, r);}if(arr[2 * id 1].l r) {modify(2 * id 1, l, r);}arr[id].sum arr[2 * id].sum arr[2 * id 1].sum;}/* 区间查询 */int query(int id, int l, int r) {if (arr[id].l l arr[id].r r) {return arr[id].sum;}if (arr[id].r l || arr[id].l r) {return 0;}pushdown(id);int res 0;if (arr[2 * id].r l) {res query(2 * id, l, r);}if (arr[2 * id 1].l r) {res query(2 * id 1, l, r);}return res;} };public:vectorlong long handleQuery(vectorint nums1, vectorint nums2, vectorvectorint queries) {int n nums1.size();int m queries.size();SegTree tree(nums1);long long sum accumulate(nums2.begin(), nums2.end(), 0LL);vectorlong long ans;for (int i 0; i m; i) {if (queries[i][0] 1) {int l queries[i][1];int r queries[i][2];tree.reverseRange(l, r);} else if (queries[i][0] 2) {sum (long long)tree.sumRange(0, n - 1) * queries[i][1];} else if (queries[i][0] 3) {ans.emplace_back(sum);}}return ans;} };五、解题思路 (1) 使用线段树来解决问题。
http://www.pierceye.com/news/641499/

相关文章:

  • 网站改版提交河北建设工程信息网官
  • 建站宝盒v8破解版下载菜鸟怎么做网站
  • 网站建设课程 考核目的wordpress注册确认信
  • 建设银行网站公告2022国内外重大新闻事件10条
  • 门户网站建设 简报电子工程信息建设网
  • 竞价网站模板网站模板小偷
  • 怎么做视频网站网站建设设计基础
  • 惠州网站建设公司曾做网站需要学习什么知识
  • 网站制作里面链接怎么做建网站要什么工做人员
  • 网站建设费用 会计分录网站用哪些系统做的好
  • 免费建立一个个人网站网站模板怎么引用
  • 网站推广软文公司wordpress里面备份功能在哪里
  • 贵州整站优化seo平台网站建设与开发英文文献
  • 江干区住房和城乡建设局网站北京网站开发的趋势在哪里
  • 无锡网站建设选千客云网络简单网站建设推荐
  • 设计网站推荐百度贴吧带搜索的下拉框网站
  • 长春站最新发布网站开发税费
  • 北京通州住房和城乡建设部网站网站开发运营服务合同
  • 建设网站的服务端口国外用python做的网站
  • 如何实现网站生成网页手机端网站建设的注意事项
  • 澄迈网站新闻建设哪个公司建设网站
  • 怎么免费做文学网站wordpress下载及使用说明
  • 大学做兼职英语作文网站中国建筑人才培训网
  • 健康养老网站建设展馆展厅设计效果图
  • 做甜品网站的需求分析wordpress手机移动主题
  • 大兴企业官方网站建设wordpress 电话登记插件
  • 织梦网站搜索怎么做爱拍怎么创建wordpress
  • 阿里云多网站建设绵阳专门做网站的公司有哪些
  • 网站推广的基本方法对于大部分网站来说都是适用的深圳华强北网站建设
  • 网校网站毕业设计的方案网站如何做外链教程视频