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

东莞网站建设基础简述企业网站建设的流程

东莞网站建设基础,简述企业网站建设的流程,365房产南京网站,宁波网站推广软件哪家强些目录 什么是前缀和? 如何计算前缀和? 前缀和有什么用? 实战 什么是前缀和? 前缀和可以将数组中的连续元素相加 sum是数组中第一个元素到第i个元素的和 感觉像是简单的dp? 如何计算前缀和? 很简单,只…

目录

什么是前缀和?

如何计算前缀和?

前缀和有什么用?

实战

什么是前缀和?

前缀和可以将数组中的连续元素相加

sum是数组中第一个元素到第i个元素的和

感觉像是简单的dp?

如何计算前缀和?

很简单,只要遍历一遍数组,每次将a中当前元素加到上一个前缀和上

时间复杂度是O(N)

代码:

#include <iostream>
#include <vector>
using namespace std;
int main() {//原数组vector<int> a = { 1, 2, 3, 4, 5 };//前缀和数组vector<int> sum(a.size());sum[0] = a[0];//计算前缀和for (int i = 1; i < a.size (); i++) {sum[i] = sum[i - 1] + a[i];}// 输出前缀和数组for (int i = 0; i < a.size (); i++) {cout << sum[i] << " ";}cout << endl;return 0;
}

当然也可以用库函数,不过作者感觉没什么用(需要对库函数掌握得十分滴熟练)

#include<iostream>
#include<vector>
#include<numeric>
using namespace std;
int main() {vector<int> arr = { 1,2,3,4,5 };vector<int> sum(arr.size());partial_sum(arr.begin(), arr.end(), sum.begin());for (int i = 0; i < arr.size(); i++)cout << sum[i] << " ";return 0;
}

 在某些情况下还能再简单,即在原数组中计算,减少空间复杂度

#include <iostream>
#include <vector>
using namespace std;
int main() {vector<int> a = { 1, 2, 3, 4, 5 };int n = a.size();for (int i = 1; i < n; i++) {a[i] = a[i - 1] + a[i];}for (int num : a) {cout << num << " ";}return 0;
}

前缀和有什么用?

1、区间求和

给定一个区间,例如【1,3】,求数组在此区间上的和

#include <iostream>
#include <vector>
using namespace std;
int main() {vector<int> a = { 1, 2, 3, 4, 5 };vector<int> sum(a.size());int left = 1;int right = 3;sum[0] = a[0];for (int i = 1; i < a.size (); i++) {sum[i] = sum[i - 1] + a[i];}//求区间和cout << (sum[right] - sum[left-1]) << endl;return 0;
}

 这里有一个特例,就是当left为0的时候,left-1就越界了

提供两个解决方法,一个是用if(left==0)特判,另一个是原数组从下标为1的位置开始存储(推荐)

注意不能写成sum[right] - sum[left]

2、前缀积(和前缀和差不多)

求区间【1,3】的前缀积就是sum[right]-sum[left-1]

前提是前缀积不能溢出

高精度计算中通常会对前缀积进行取模

sum[i]=(sum[i-1]*arr[i])%mod

感兴趣的可以搜一下乘法逆元/费马小定理/快速幂(其实是作者不会)

3、异或和

求区间【1,3】的异或和就是sum[right]^sum[left-1]

#include<iostream>
#include<vector>
using namespace std;
int main() {vector<int> arr = { 2,2,7,5,7,2,1,4,1,5 };vector<int> s(arr.size());s[0] = arr[0];for (int i = 1; i < arr.size(); i++) {s[i] = s[i - 1] ^ arr[i];}for (int i = 0; i < arr.size(); i++) {cout << s[i] << " ";}return 0;
}

 

前缀异或和数字相同=这段区间异或和为0

比如上图异或和中有2个7,就代表原数组5,7,2这3个数的异或和为0

实战 

洛谷P2004 领地选择

二维前缀和

#include<iostream>
#include<vector>
using namespace std;
int a[1050][1050], dp[1050][1050];
int main() {int n, m, c;cin >> n >> m >> c;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> a[i][j];dp[i][j] = dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1] + a[i][j];}}int x = 0, y = 0;int MAX = -2147483648;for (int i = c; i <= n; i++) {for (int j = c; j <= m; j++){int t = dp[i][j] - dp[i - c][j] - dp[i][j - c] + dp[i - c][j - c];if (t > MAX) {MAX = t;x = i - c + 1;y = j - c + 1;}}}cout << x << " " << y << endl;return 0;
}


文章转载自:

http://UgsxK8Uc.mxgpp.cn
http://XQSJxKTh.mxgpp.cn
http://4kogP85B.mxgpp.cn
http://IQs4scoY.mxgpp.cn
http://7uoRzGel.mxgpp.cn
http://Fd383x4M.mxgpp.cn
http://01CwYVsJ.mxgpp.cn
http://jYOb2jwy.mxgpp.cn
http://xA8btIgg.mxgpp.cn
http://Z3QLr0Lb.mxgpp.cn
http://9G8PARFP.mxgpp.cn
http://yyeESpX7.mxgpp.cn
http://U3pvXw9U.mxgpp.cn
http://AIIjbVVe.mxgpp.cn
http://9BRa05zl.mxgpp.cn
http://ioxXMfmE.mxgpp.cn
http://n8NuWG5U.mxgpp.cn
http://20XgeF9b.mxgpp.cn
http://aA0DBtqR.mxgpp.cn
http://rjkrW4HI.mxgpp.cn
http://0bl3JQC0.mxgpp.cn
http://rftdU49Y.mxgpp.cn
http://X8I6z5e5.mxgpp.cn
http://uoi2UlHn.mxgpp.cn
http://YQ86c2kl.mxgpp.cn
http://oqHLs9e1.mxgpp.cn
http://TGvkKWGB.mxgpp.cn
http://KYrGWyHz.mxgpp.cn
http://VqzjDupf.mxgpp.cn
http://Z8UDzsfl.mxgpp.cn
http://www.dtcms.com/wzjs/741546.html

相关文章:

  • 英文网站建设 潍坊中国建筑招聘网官网
  • 现代化专业群建设网站百度网址安全中心怎么关闭
  • 加强网站基础建设wordpress 图片中文名
  • 深圳专业网站做擦边球的网站
  • 宁波网站建设制作多少钱现在最火的推广平台有哪些
  • 云南手机网站建设做网站vs2012能不能做
  • 网站icp是什么意思清远医院网站建设方案
  • 网络存储上做网站wordpress 3.5 漏洞 xss
  • 花都建设网站大型网站建设哪家服务好
  • dedecms 招聘网站asp.net程序做的网站安全吗6
  • 网站诊断分析案例友情链接论坛
  • 建设邮费自己的网站_要不要购买服务器的app策划书模板范文
  • 门户网站主要包括哪些模块张家港网站建设
  • 怎么创建自己的网站平台镜像网站做优化
  • 网站正则表达式怎么做王野天葛优
  • 网站制作的文章网站建设域名注册
  • 建设一个企业网站需要多少钱wordpress网页标签图标
  • 学会网站建设的重要性专用车网站建设多少钱
  • 董家渡街道网站建设电商网站 性能目标有哪些
  • 自己创建平台型网站品牌推广部
  • 北京网站建设公司东为如何做品牌网站设计
  • 网站程序是什么意思河间网站建设价格
  • 农家乐网站 建设做企业平台的网站
  • php大型网站开发书籍wordpress 如何调试
  • 红酒论坛网站建设中国四大软件外包公司是哪四个
  • 怎么把做的网页放入网站免费建站哪家好
  • 泉州专业制作网站开发网线制作过程简述
  • 培训中心网站建设方案seo网站推广专员招聘
  • 网站建设技术可行性分析做小程序的平台
  • 清远住房和城乡建设局网站装饰公司网站