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

xml天气预报网站怎么做/北京网聘咨询有限公司

xml天气预报网站怎么做,北京网聘咨询有限公司,武汉学校网站建设,象山专业网站建设http://acm.hdu.edu.cn/showproblem.php?pid1166 此题考查RSQ(Range Sum Query)。 线段树: /*343ms,744KB*//* 我们使用如下缩写:root--整棵树的根节点 rt--当前区间的根节点 l,r--区间左右端点 m--区间的二等分点,注意m是落在左子区间的(右…

http://acm.hdu.edu.cn/showproblem.php?pid=1166


此题考查RSQ(Range Sum Query)。


线段树:

/*343ms,744KB*//*
我们使用如下缩写:root--整棵树的根节点
rt--当前区间的根节点
l,r--区间左右端点
m--区间的二等分点,注意m是落在左子区间的(右端点)
lson,rson--左右子区间p--position,待更新的位置
ql,qr--待查询区间的左右端点
*/#include <cstdio>
#define lson l, m, rt << 1
#define rson m + 1, r, rt << 1 | 1
#define root 1, n, 1
const int mx = 50000;int sum[mx << 2];/*
收集当前节点的左右子区间的信息
在递归函数向上返回之前被调用
故称之为pushup
*/
inline void pushup(int rt)
{sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
}/*
采用后序遍历建树
*/
void build(int l, int r, int rt)
{if (l == r){scanf("%d", &sum[rt]);return;}int m = (l + r) >> 1;build(lson);build(rson);pushup(rt);
}/*
二分查找要更新的位置
找到后向上更新父节点
*/
void update(int p, int addval, int l, int r, int rt)
{if (l == r){sum[rt] += addval;return;}int m = (l + r) >> 1;if (p <= m) update(p, addval, lson);else update(p, addval, rson);pushup(rt);
}/*
二分查找要计算的区间
返回:区间[ql,qr]的查找结果
*/
int query(int ql, int qr, int l, int r, int rt)
{if (ql <= l && r <= qr){return sum[rt];}int sum = 0, m = (l + r) >> 1;if (ql <= m) sum += query(ql, qr, lson);if (m < qr) sum += query(ql, qr, rson);return sum;
}int main()
{int t, i, n, a, b;char s[10];scanf("%d", &t);for (i = 1; i <= t; ++i){printf("Case %d:\n", i);scanf("%d", &n);build(root);while (scanf("%s", s), s[0] != 'E'){scanf("%d%d", &a, &b);if (s[0] == 'A') update(a, b, root);else if (s[0] == 'S') update(a, -b, root);else printf("%d\n", query(a, b, root));}}return 0;
}

树状数组:(速度挺快)

/*140ms,444KB*/#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>int N, r[50001];void update(int p, int m) {while (p <= N) {r[p] += m;p += p & -p;}
}int sum(int n) {int sum = 0;while (n) {sum += r[n];n -= n & -n;}return sum;
}int query(int sta, int end) {return sum(end) - sum(sta - 1);
}int main() {int T;scanf("%d", &T);bool pos = true; //pos用来标示是否输出 Case i:for (int i = 1; i <= T; ++i) {memset(r, 0, sizeof(r));scanf("%d", &N);for (int j = 1; j <= N; ++j) {int add;scanf("%d", &add);update(j, add);}char dos[10];int a, b;while (true) {scanf("%s", dos);if (dos[0] == 'E') {pos = true;break;}scanf("%d%d", &a, &b);if (dos[0] == 'Q') {if (pos) {printf("Case %d:\n", i);pos = false;}printf("%d\n", query(a, b));}elsedos[0] == 'A' ? update(a, b) : update(a, -b);}}return 0;
}

http://www.lbrq.cn/news/1417285.html

相关文章:

  • 数据网站有哪些/推广专员是做什么的
  • 旅游网站结构图/北京网站建设公司优势
  • 网站建设太金手指六六十八/中国十大网络营销平台
  • 响应式网站开发教程/比较靠谱的电商培训机构
  • 济南网站设计建设/北京做的好的seo公司
  • 公众号视频网站怎么做/如何做网站建设
  • 网站制作软件工程师/广州seo顾问seocnm
  • 判断网站是什么系统做的/软件培训机构
  • 怎么做网站横幅/杭州龙席网络seo
  • 苏州画廊网站建设/站长工具网址查询
  • soho建网站/山东关键词快速排名
  • 点网站建设/北京seo案例
  • h5响应式网站设计方案/站长工具星空传媒
  • 桂林小程序制作/郑州seo排名第一
  • 互联网信息投诉平台入口/seo变现培训
  • 常用网站字体/竞价排名推广
  • 为什么做红酒网站/市场策划方案
  • 有关网站建设的外文文献/精准营销推广方案
  • 做网站费用多少/随州seo
  • 做违法网站的后果/seo系统
  • qifeiye做的网站如何/seo网站外链工具
  • 广东商城网站建设价格低/专业做网站建设的公司
  • 企业信息网站模板/买卖网交易平台
  • 番禺做网站费用/google开户
  • 100件创意产品/搜索引擎优化的方式有哪些
  • 做电影解析网站/pc端网页设计公司
  • 有个网站叫设计什么/别人恶意点击我们竞价网站
  • vs2013做的网站/凡科建站官网登录
  • 网站添加 百度商桥/网络优化工程师是做什么的
  • 网站建设 广州佛山/竞价排名营销
  • 实变函数中集合E的边界与其补集的边界是否相等
  • 【Java后端】Spring Boot 集成 MyBatis-Plus 全攻略
  • Python语言一键整理xhs评论 基于github的开源项目 MediaCrawler
  • 要想在Trae运行Java程序,该怎样配置Java环境?
  • PowerShell 格式化系统完全掌握(下):自定义列/格式字符串/对齐与宽度 + 实战模板
  • 【机器学习深度学习】生成式评测