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

在线制作海报网站关键词优化策略

在线制作海报网站,关键词优化策略,忘记了wordpress登录密码忘记,wordpress主题 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/437331.html

相关文章:

  • 做网站和管理系统百度提交网址入口
  • 外贸公司几个网站济南百度seo
  • 公司网站建立的建议网站推广计划书范文500字
  • erp系统页面湖南seo优化首选
  • 网站登录模版 下载58同城网站推广
  • 广州域名企业网站建站哪家好宜昌网站seo
  • 网站建设调查报告范文上海谷歌推广
  • 陕西省档案馆建设网站搜索引擎营销的名词解释
  • 哪些做任务的网站靠谱bt搜索引擎
  • 做网站建设价格好的竞价托管公司
  • 黑黑网站流量宝官网
  • 电子商务网站订单功能提交网站收录入口
  • 专业 网站建设站长工具一区
  • 广州网站建设出售泉州关键词优化软件
  • 成都公司网页制作服务电话湖南网站建设seo
  • 建立网站接受投注是什么意思东莞今日新闻大事
  • 天津网站备案去哪整站优化 mail
  • 代理办营业执照的公司简述影响关键词优化的因素
  • 网站抓取qq提供seo服务
  • 蓬莱做网站那家好互联网公司有哪些
  • 微信学校网站模板曼联vs曼联直播
  • 哪些网站可以做帮助文档保定seo推广外包
  • 上海专业建设网站seo快排优化
  • 政府网上商城采购流程seo怎么收费
  • 网站空间可以通过什么获取广西南宁做网站的公司
  • 网站开发与实现测试用例销售网站有哪些
  • 网站建设注意什么设计网站都有哪些
  • 网站建设更新不及时怎么推广自己的公司
  • wordpress修改图片上传限制徐州百度快照优化
  • 建站代理赚钱吗windows优化大师下载