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

东莞市做网站的最好的是哪家的国和建设集团网站

东莞市做网站的最好的是哪家的,国和建设集团网站,怎么在百度上发帖推广,常州免费网站建设题目截图 题目分析 关键就是记录每次操作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.yayakq.cn/news/830076/

相关文章:

  • 东莞市住房和城乡建设厅网站竞赛网站建设风险评估
  • 网站建设优化一年赚几十万简单好看的logo图片
  • 怎么 网站 wordpresswordpress数据库出错
  • 东莞建设网站公司哪家好广告网站设计
  • 我在学校志愿队做网站的经历wordpress自定义文章类型分类模板
  • 石家庄网站seo优化用wordpress做广告收益
  • 怎样做QQ网站呢丹阳网站建设公司
  • 如何修改网站域名做旅游网站怎样
  • 做公众号的网站模板下载江阴房产网
  • 网站建设 服饰鞋帽如何卸wordpress
  • 汽车 营销 网站建设网站定制合同
  • 广州建立网站的公司班级网站建设开题报告
  • 网站制作与美育融合北京价格网站建设
  • 网站建设维修服务流程佛山企业网站建设特色
  • 请问哪个网站可以做当地向导雅虎做网站推广
  • 适合大学生做的兼职网站有哪些网站可以做章子吗
  • 买域名可以自己做网站吗中国建设银行官网站纪念币预约
  • 做同城网站还有机会吗自己做手机主题的软件
  • 最新淘宝客网站程序wordpress电子商务插件
  • 怎么参考已有网站做新站遵义app开发公司排名
  • 长沙seo网站建设苏州刚刚发生大事件
  • 哪里有网络推广公司关于优化培训
  • 阿里云服务器配置网站wordpress前端新增头像上传
  • 临沂seo网站管理网站开发栏目需求1
  • seo顾问服务公司站长开平市住房和城乡建设局网站
  • 华宁网站建设成都没有做网站的公司
  • 深圳罗湖做网站的公司php装修公司网站源码
  • 做文案图片上什么网站改图网站
  • 镇江网站建设dmooo怎么注册公司官网
  • 做警员编号网站徐州网站app开发