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

东莞百度搜索网站排名安徽省住房建设部官方网站

东莞百度搜索网站排名,安徽省住房建设部官方网站,新品发布会朋友圈文案,上海建设局网站 招聘一、差分 前缀和和差分的核心思想是预处理 , 可以在暴力枚举的过程中 , 快速给出查询结果 , 从而优化时间复杂度 。 最经典的用空间替换时间的做法。 学完差分之后 , 大家会发现 , 前缀和与差分是一对互逆的运算 二、一…

一、差分

前缀和和差分的核心思想是预处理 可以在暴力枚举的过程中 , 快速给出查询结果 , 从而优化时间复杂度 。

最经典的用空间替换时间的做法。

学完差分之后 , 大家会发现 , 前缀和与差分是一对互逆的运算

二、一维差分

登录—专业IT笔试面试备考平台_牛客网

解法一:暴力解法 --> 直接模拟

两层 for 循环 -->  O(m*n) = 10^10 (超时了...) 

所以我们可以总结出 用差分解决问题的模板:

1) 创建差分数组

 

2)利用差分数组处理 m 次 修改操作


3)还原成原始数组:

#include <iostream>
using namespace std;typedef long long LL;
const int N = 1e5 + 10;
LL n,m;
LL a[N];
LL f[N];//记录差分数组int main()
{cin >> n >> m;//利用差分数组定义创建差分数组for(int i = 1;i<=n;i++){cin >> a[i];f[i] = a[i] - a[i-1];}//处理 m 次修改操作while(m--){LL l,r,k;cin >> l >> r >> k;f[l] += k;f[r+1] -= k;} //还原出原始的数组for(int i = 1;i<=n;i++){a[i] = a[i-1] + f[i];cout << a[i] << " ";}return 0;
}

三、海底高铁

P3406 海底高铁 - 洛谷

#include <iostream>
using namespace std;typedef long long LL;const int N = 1e5 + 10;int n,m;
LL f[N];//差分数组 int main()
{cin >> n >> m;//x->yint x,y;cin >> x;//处理差分数组 for(int i = 2;i<=m;i++){cin >> y;//x->yif(x > y)f[y]++,f[x]--;else f[x]++,f[y]--;x = y;}//利用差分数组,还原出原数组for(int i = 1;i<=n;i++){f[i] += f[i-1];} //直接求结果LL ret = 0;for(int i = 1;i<=n;i++){LL a,b,c;cin >> a >> b >> c;ret += min(a*f[i],c+b*f[i]);} cout << ret << endl;return 0;} 

四、二维差分

登录—专业IT笔试面试备考平台_牛客网

第一个能想到的就是暴力枚举 , 到了目标区域 , 直接进行操作,

但是时间复杂度太高了 , OJ平台是不会给过的~

借助二维差分数组 :

画图 ! 了解二维差分数组的性质 , 等再次使用的时候 , 上手会很快!!!

#include <iostream>
using namespace std;typedef long long LL;
const int N = 1001;
LL n,m,q;
LL f[N][N];//差分矩阵 //差分矩阵的性质 
void insert(int x1,int y1,int x2, int y2,int k)
{f[x1][y1] += k;f[x1][y2+1] -= k;f[x2+1][y1] -=k;f[x2+1][y2+1] +=k; 
}int main()
{cin >> n >> m >> q;//预处理--构造差分矩阵 for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){LL x;cin >> x;//[i,j] 为左上角,[i,j]为右下角的矩阵,统一加上xinsert(i,j,i,j,x); }}//处理q次修改操作while(q--){int x1,y1,x2,y2,k;cin >> x1 >> y1 >> x2 >> y2 >> k;insert(x1,y1,x2,y2,k);} //利用前缀和还原修改之后的数组for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){f[i][j] = f[i-1][j] + f[i][j-1] - f[i-1][j-1] + f[i][j];cout << f[i][j] << " ";}cout << endl;} return 0;
}

五、地毯

P3397 地毯 - 洛谷

差分数组走起来 , 简简单单~ 

#include <iostream>
using namespace std;const int N = 1010;
int f[N][N];
int n,m; void insert(int x1,int y1,int x2,int y2)
{f[x1][y1]++;f[x2+1][y1]--;f[x1][y2+1]--;f[x2+1][y2+1]++;
}
int main()
{cin >> n >> m;while(m--){int x1,y1,x2,y2;cin >> x1 >> y1 >> x2 >> y2;insert(x1,y1,x2,y2);}//借助前缀和还原成原数组for(int i = 1;i<=n;i++){for(int j = 1;j<=n;j++){	f[i][j] = f[i-1][j] + f[i][j-1] - f[i-1][j-1] + f[i][j];cout << f[i][j] << " ";	}cout << endl;}return 0;
}

 在理解的基础上可以背背 , 但是尽量不要背 , 理解为主

http://www.dtcms.com/wzjs/580139.html

相关文章:

  • 教育网站建设 飞沐标书制作难吗
  • 钱币网站建设网站开发主要技术
  • 搭建网站账户系统泉州市建设局网站公示
  • 沈阳建网站电商大量增加告权重网站友链回提升网站权重吗
  • 网站建设外包发展情况男女性男女直接做的视频网站
  • 织梦网站首页怎么修改公司网站建设收费
  • 苏州装修公司网站建设沈阳网站建设黑酷科技
  • 阿里云空间部署网站吗网站建设哪里便宜
  • 郑州网站优化pc 手机网站
  • 免费源码网站it运维职业规划
  • 域名 放别人网站青岛万维网站设计
  • 广州建设工程交易中心网站织梦网站怎么建设
  • 公司网站开发费用计入什么科目求职
  • 不会编码可以做网站优化吗办公空间设计说明范文
  • 电商培训课程苏州关键词优化软件
  • 怎么用腾讯云做网站还原wordpress站点地址恢复
  • 金昌市建设工程质量监督站网站wordpress 表情包
  • 济南网站维护公司wordpress超链接颜色
  • 东莞网站开发哪家好在哪里做网站比较好
  • 潍坊 开发区网站建设在演示文稿上网站怎么做
  • php网站建设论文答辩wordpress进入中国市场
  • 网站开发的意义和作用江苏城乡住房和城乡建设厅网站
  • 制作网站参考案例哪些网站适合用自适应
  • vs python 网站开发湖州网站制作
  • 旅游网站经营模式可以做四级听力的网站
  • 领导高度重视网站建设wordpress路径函数
  • 中国建设银行网站软件下载建设银行网站能买手机
  • 网站被主流搜索引擎收录的网页数量丰宁建设局网站
  • 江门建站网站服务器失去响应
  • 手机网站制作的价格网站优化前景