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

百度做网站多少钱seo排名课程咨询电话

百度做网站多少钱,seo排名课程咨询电话,北京注册公司要求,北京中风险地区文章目录 题目求和棋盘挖矿 前缀和有利于快速求解 区间的和、异或值 、乘积等情况差分是前缀和的反操作 前缀和 一维前缀和: # 原始的数组num,下标从1到n n len(num) pre [0]*(n1) for i in range(n):pre[i1] pre[i] num[i] # 如果需要求解num[l] 到num[r] 的区…

文章目录

  • 题目
    • 求和
    • 棋盘
    • 挖矿

  • 前缀和有利于快速求解 区间的和、异或值 、乘积等情况
  • 差分是前缀和的反操作

前缀和

  • 一维前缀和:
# 原始的数组num,下标从1到n
n = len(num)
pre = [0]*(n+1)
for i in range(n):pre[i+1] = pre[i] + num[i]
# 如果需要求解num[l] 到num[r] 的区间和
ans = pre[r] - pre[l-1]
  • 二维前缀和
# 原本的数组是n*m形状的pre = [[0]*(m+1) for _ in range(n+1)]for i in range(n):for j in range(m):pre[i+1][j+1] = pre[i][j+1] + pre[i+1][j] - pre[i][j] + num[i][j]

前缀和的应用:

  • 当你想在一个区间进行统一的加上一个数或者减去一个数的时候,一个个操作会很慢,并且涉及多次操作的时候更新很麻烦,但是我们可以结合这个差分和前缀和进行快速求解

  • 一维:

# 在区间l到r之间同时都加上a,那么我们只需在num[l] + a,在num[r+1] -a
# 然后求解前缀和即可,就可以得到每个位置的最后的值
  • 二维:
# 1<=x1<=x2<=y1<=y2<=n
# 在x1,y1 到 x2,y2 之间都加上一个数
num[x1][y1] += a
num[x2+1]y2+1] +=a
num[x1][y2+1] -=a
num[x2+1][y1] -=a

差分:

  • 一维差分:
# 1<=l<=r<=n ,那么区间l到r之间的和值为
ans = pre[r] - pre[l-1]
  • 二维查分:
# 
ans = pre[x2][y2] - pre[x2][y1] - pre[x1][y2] + pre[x1][y1]

题目

求和

求和

在这里插入图片描述

思路分析:

  • 首先直接暴力是肯定不行的,所以得考虑转换?发现可以提取相同的元素,然后使用这个前缀和进行优化即可
import os
import sys# 请在此输入您的代码# 提取公因式,你会发现 ans = a1*(a2+···an) + a2*(a3+···an) + an-1*(an)n = int(input())
num = list(map(int,input().split()))pre = [0]*(n+1)
for i in range(n):pre[i+1] = pre[i] + num[i]ans = 0
for i in range(n-1):ans += num[i]*(pre[n]-pre[i+1])
print(ans)

棋盘

棋盘

在这里插入图片描述

思路分析:

  • 这个题目得使用到这个二维的前缀和与查分进行优化
import os
import sys# 请在此输入您的代码# 其实和这个,异或操作是类似的
# 0表示白色,1表示黑色n,m = map(int,input().split())num = [[0]*(n+1) for _ in range(n+1)]for _ in range(m):x1,y1,x2,y2 = map(int,input().split())x1,y1,x2,y2 = x1-1,y1-1,x2-1,y2-1num[x1][y1] += 1num[x2+1][y2+1]     +=1num[x1][y2+1]   -=1num[x2+1][y1]   -=1# 求解二维前缀和
dp = [[0]*(n+1) for _ in range(n+1)]for i in range(n):for j in range(n):dp[i+1][j+1] = (dp[i+1][j] + dp[i][j+1] - dp[i][j] + num[i][j])%2for i in range(1, n + 1):row = "".join(str(dp[i][j]) for j in range(1, n + 1))print(row)

挖矿

挖矿

在这里插入图片描述

思路分析:

  • 首先明确一个问题,在坐标轴上移动,最多只能转向一次:证明,设你转向多次之后到达左端点是 l,到达右端点的坐标是 r,如果你直接一开始不转向,直接到达左端点l,然后再直接向后转向右边,那么到达的距离是肯定比r大的
import os
import sys# 请在此输入您的代码
n,m = map(int,input().split())
num = list(map(int,input().split()))
# 开的空间
l ,r = [0]*(m + 1),[0]*(m + 1)iszero = 0for i in num:if i > 0 and i <= m:r[i] += 1if i < 0 and abs(i) <= m:l[abs(i)] += 1if i == 0:iszero = 1# 计算出其中的左和右可以到达的位置所能得到的矿
for i in range(1,m+1):r[i] += r[i-1]l[i] += l[i-1]
ans = 0# 枚举可以到达的端点,注意左边和右边
for j in range(1,m//2 + 1):ans = max(ans,r[j] + l[m-2*j],l[j] + r[m-2*j])print(ans+iszero)
http://www.dtcms.com/wzjs/347997.html

相关文章:

  • 南宁网红打卡地排行榜自己搜20条优化措施
  • 建个人网站需要钱嘛百度推广网址
  • 宝安石岩网站建设江门关键词优化公司
  • 电商网站开发会遇到哪些问题最新搜索引擎排名
  • 公众号购买厦门seo排名收费
  • 太原网站备案现场核验怎么做线上推广
  • 做公司网站源代码怎么写网络推广是什么工作
  • 二手书网站开发的必要性线上招生引流推广方法
  • 莱芜高端网站建设报价百度指数怎么查询
  • 开网店哪些平台不收费搜索引擎优化排名品牌
  • 做农业种子的网站成人厨师短期培训班
  • 长沙专门做网站公司中国广告网
  • 渭南网站建设网站建设seo整站优化方案案例
  • 地方建立网站做SEM快手刷粉网站推广
  • 网易邮箱能登企业邮箱吗朝阳区seo搜索引擎优化怎么样
  • 四川网站网页设计搜索引擎推广
  • php动态网站开发 唐四薪 答案网站搭建公司
  • 交互型网站难做吗网络整合营销理论案例
  • 做网站 花时间教育培训网站
  • 个人做电影网站违法吗什么是百度竞价推广
  • 手机网站导航特效5g站长工具seo综合查询
  • 在哪个网站找地理题做网络推广网络营销和网站推广的区别
  • 青岛哪家做网站的公司内容营销的4个主要方式
  • 秦皇岛网站制作价格免费的行情软件网站下载
  • 专业做网站+上海公司品牌推广方案范文
  • dw代码做网站爱链接外链购买
  • 青岛大型门户网站建设推广快推达seo
  • 做影视网站被起诉百度问答库
  • 苏州企业网站优化seo外包费用
  • 建什么网站访问量高信息流广告投放