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

网易企业邮箱账号seoul什么意思

网易企业邮箱账号,seoul什么意思,北京专业网站制作介绍,电商 网站 备案本题链接:【模板】树状数组 2 - 洛谷 题目: 输入 5 5 1 5 4 2 3 1 2 4 2 2 3 1 1 5 -1 1 3 5 7 2 4 输出 6 10 思路: 根据题意,这里是需要区间添加值,单点查询值。如果区间添加值中暴力去一个个加值,肯定…

本题链接:【模板】树状数组 2 - 洛谷

题目:

输入
5 5
1 5 4 2 3
1 2 4 2
2 3
1 1 5 -1
1 3 5 7
2 4
输出
6
10

思路:

        根据题意,这里是需要区间添加值,单点查询值。如果区间添加值中暴力去一个个加值,肯定会TLE,所以我们这里运用到了模板树状数组的重要作用了。

        根据 差分 的性质,我们知道,区间加值,我们可以构造一个前缀和数组来表示当前原数组的元素值,对此,进行区间的修改,有效的避免O(n)的时间复杂度。

所以我们可以结合,树状数组的前缀和 + 差分 性质,达到区间修改,单点查询的效果。

下面给出操作函数:

区间修改
// 单点添加元素
inline void Add_pos(int pos,int x)
{for(int i = pos;i <= n + 1;i+=lowbit(i)) arr[i] += x;
}// 区间添加元素
inline void Add_section(int L,int R,int x)
{// 利用差分数组的原理,// 差分树状数组,// 达到区间修改值的效果Add_pos(L,x);Add_pos(R+1,-x);	
}

单点查询
// 差分前缀和 单点查询
inline int Ask_pos(int pos)
{// 利用 差分 性质// 差分的前缀和,就是当前的元素值// 所以树状数组求前缀和,返回当前下标的元素值int ans = 0;for(int i = pos;i;i-=lowbit(i)) ans += arr[i];return ans;
}

代码详解如下:

#include <iostream>
#include <vector>
#include <queue>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#define endl '\n'
#define int long long
#define YES puts("YES")
#define NO puts("NO")
#define lowbit(x) (x&(-x))
#define umap unordered_map
#define All(x) x.begin(),x.end()
//#pragma GCC optimize(3,"Ofast","inline")
#define IOS std::ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
const int N = 7e7 + 10;int n,m;
int arr[N];	// 构造 差分树状数组
int a[N];	// 记录原数组初始值// 单点添加元素
inline void Add_pos(int pos,int x)
{for(int i = pos;i <= n + 1;i+=lowbit(i)) arr[i] += x;
}// 区间添加元素
inline void Add_section(int L,int R,int x)
{// 利用差分数组的原理,// 差分树状数组,// 达到区间修改值的效果Add_pos(L,x);Add_pos(R+1,-x);	
}// 差分前缀和 单点查询
inline int Ask_pos(int pos)
{// 利用 差分 性质// 差分的前缀和,就是当前的元素值// 所以树状数组求前缀和,返回当前下标的元素值int ans = 0;for(int i = pos;i;i-=lowbit(i)) ans += arr[i];return ans;
}inline void solve()
{cin >> n >> m;for(int i = 1;i <= n;++i){cin >> a[i];Add_pos(i,a[i] - a[i - 1]);	// 单点添加 初始值 的 差分元素}while(m--){int op;cin >> op;if(op == 1){int L,R,x;cin >> L >> R >> x;Add_section(L,R,x);	// 区间添加值	}else{int pos;cin >> pos;	// 差分前缀和单点查询cout << Ask_pos(pos) << endl;}}
}signed main()
{
//	freopen("a.txt", "r", stdin);
//	IOS;int _t = 1;
//	cin >> _t;while (_t--){solve();}return 0;
}

最后提交:

http://www.mmbaike.com/news/103982.html

相关文章:

  • 做网站文字大小百度移动开放平台
  • javacms做动漫网站软文撰写案例
  • 郓城做网站公司seo策略是什么意思
  • 建站系统破解个人博客网页制作
  • 设计网站费用多少sem是什么的缩写
  • 国内做网站的公司有哪些网站查询地址
  • 自己如何做公司网站视频seo收费标准
  • 做 在线观看免费网站百度上海推广优化公司
  • 网站图片搜索技术哪里可以做推广小程序拿佣金
  • 深圳龙华区房价汕头seo收费
  • 网站建设 功能需求2022最新新闻素材摘抄
  • 政府网站建设管理意见品牌推广百度seo
  • 贵阳百度做网站电话seo免费入门教程
  • 网站设计风格分类成功品牌策划案例
  • 西安手机网站定制网站建设传统营销
  • 做女装的看哪个网站好免费建站的网站有哪些
  • 做单页网站价格电商代运营公司100强
  • 如何提高网站安全离我最近的电脑培训中心
  • 如何用服务器搭建自己的网站权重查询站长工具
  • 商城网站制作方案怎样在百度上发布信息
  • 网站建设数据录入市场调研流程
  • 网站短信群发长沙seo研究中心
  • python网站和js做网站如何优化培训方式
  • 阿里巴巴怎么建设网站首页发布外链
  • 用户体验度好的网站百度推广电话号码
  • 郴州市宜章网站建设惠州seo招聘
  • 餐厅装修设计公司网站企业培训机构
  • wordpress 加载排版广告投放优化师
  • 网站建设相关问题东莞做网络推广的公司
  • 投稿平台seo优化与推广招聘