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

齐齐哈尔市建设网站黄页88网站推广效果

齐齐哈尔市建设网站,黄页88网站推广效果,ppt做书模板下载网站,做网页靠哪个网站赚钱题目截图 题目分析 关键就是记录每次操作2时,nums1中的1的个数这就需要实现线段树进行区间反转以及区间求和 ac code class Solution:def handleQuery(self, nums1: List[int], nums2: List[int], queries: List[List[int]]) -> List[int]:n len(nums1)m le…

题目截图

在这里插入图片描述

题目分析

  • 关键就是记录每次操作2时,nums1中的1的个数
  • 这就需要实现线段树进行区间反转以及区间求和

ac code

class Solution:def handleQuery(self, nums1: List[int], nums2: List[int], queries: List[List[int]]) -> List[int]:n = len(nums1)m = len(queries)seg_tree = SegTree(nums1)# 只需要记录每次2操作时nums1中有多少个1即可total = sum(nums2)ans = []for i in range(m):if queries[i][0] == 1:l = queries[i][1]r = queries[i][2]seg_tree.reverse_range(l, r)elif queries[i][0] == 2:total += seg_tree.sum_range(0, n - 1) * queries[i][1]elif queries[i][0] == 3:ans.append(total)return ansclass SegTree:def __init__(self, nums):n = len(nums)self.arr = [SegNode() for _ in range(n * 4 + 1)]self.build(1, 0, n - 1, nums)def sum_range(self, left, right):return self.query(1, left, right)def reverse_range(self, left, right):self.modify(1, left, right)def build(self, id, l, r, nums):arr = self.arrarr[id] = SegNode()arr[id].l = larr[id].r = rarr[id].lazytag = Falseif l == r:arr[id].sum = nums[l]returnmid = (l + r) >> 1self.build(2 * id, l, mid, nums)self.build(2 * id + 1, mid + 1, r, nums)arr[id].sum = arr[2 * id].sum + arr[2 * id + 1].sum# pushdown函数:下传懒标记,即将当前区间的修改情况下传到其左右孩子结点def pushdown(self, x):arr = self.arrif arr[x].lazytag:arr[2 * x].lazytag = not arr[2 * x].lazytagarr[2 * x].sum = arr[2 * x].r - arr[2 * x].l + 1 - arr[2 * x].sumarr[2 * x + 1].lazytag = not arr[2 * x + 1].lazytagarr[2 * x + 1].sum = arr[2 * x + 1].r - arr[2 * x + 1].l + 1 - arr[2 * x + 1].sumarr[x].lazytag = False# 区间修改def modify(self, id, l, r):arr = self.arrif arr[id].l >= l and arr[id].r <= r:arr[id].sum = (arr[id].r - arr[id].l + 1) - arr[id].sumarr[id].lazytag = not arr[id].lazytagreturnself.pushdown(id)mid = (arr[id].l + arr[id].r) >> 1if arr[2 * id].r >= l:self.modify(2 * id, l, r)if arr[2 * id + 1].l <= r:self.modify(2 * id + 1, l, r)arr[id].sum = arr[2 * id].sum + arr[2 * id + 1].sum# 区间查询def query(self, id, l, r):arr = self.arrif arr[id].l >= l and arr[id].r <= r:return arr[id].sumif arr[id].r < l or arr[id].l > r:return 0self.pushdown(id)mid = (arr[id].l + arr[id].r) >> 1res = 0if arr[2 * id].r >= l:res += self.query(2 * id, l, r)if arr[2 * id + 1].l <= r:res += self.query(2 * id + 1, l, r)return resclass SegNode:def __init__(self):self.l = 0self.r = 0self.sum = 0self.lazytag = False
http://www.hkea.cn/news/100868/

相关文章:

  • 基层建设论文收录在哪个网站百度统计api
  • 购买主机可以做网站吗楚雄今日头条新闻
  • 深圳专业网站建设公司哪家好宁波网络营销公司
  • ps做电商网站流程图百度图片识别搜索引擎
  • 做电影网站程序好用武汉网站建设推广公司
  • 如何做b2c网站下列关于友情链接说法正确的是
  • 网站开发中网页上传seo在线网站推广
  • 网站建设报价流程免费培训网站
  • 聊城网站建设服务好最新网域查询入口
  • 一般网站建设流程有哪些步骤官方百度app下载安装
  • 档案网站建设的步骤八大营销方式有哪几种
  • 手机网站免费制作平台semseo
  • 周口市做网站小红书seo排名
  • 网站开始怎么做的ps培训
  • 去哪个网站找题目给孩子做保定百度首页优化
  • 五道口网站建设惠州seo外包服务
  • 如何查看网站是否备案企业宣传册
  • 好的网站建设公司排名互联网宣传推广
  • 上海买二手房做哪个网站好seo快速排名优化
  • 十大中国网站制作免费广告
  • wordpress 文章主题关键词推广seo
  • 佛山网站建设佛山网络推广代运营公司靠谱吗
  • 贵阳疫情最新消息站内seo优化
  • wordpress相关问题深圳百度关键字优化
  • 做国珍新时代 网站陕西seo顾问服务
  • 建立网站怎么做关键字搜索引擎营销的作用
  • 广州手机网站建设宁波seo优化费用
  • 怎么设置网站服务器宁德市教育局官网
  • 查看网站源代码建站可以牛排seo系统
  • 政府网站建设的基本原则百度网盘电脑版