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

查询域名官网的是那个网站吗网络营销推广方案案例

查询域名官网的是那个网站吗,网络营销推广方案案例,如何做徽商网站,运行两个wordpress题目背景 XLk 觉得《上帝造题的七分钟》不太过瘾,于是有了第二部。 题目描述 "第一分钟,X 说,要有数列,于是便给定了一个正整数数列。 第二分钟,L 说,要能修改,于是便有了对一段数中每…

题目背景

XLk 觉得《上帝造题的七分钟》不太过瘾,于是有了第二部。

题目描述

"第一分钟,X 说,要有数列,于是便给定了一个正整数数列。

第二分钟,L 说,要能修改,于是便有了对一段数中每个数都开平方(下取整)的操作。

第三分钟,k 说,要能查询,于是便有了求一段数的和的操作。

第四分钟,彩虹喵说,要是 noip 难度,于是便有了数据范围。

第五分钟,诗人说,要有韵律,于是便有了时间限制和内存限制。

第六分钟,和雪说,要省点事,于是便有了保证运算过程中及最终结果均不超过 64 位有符号整数类型的表示范围的限制。

第七分钟,这道题终于造完了,然而,造题的神牛们再也不想写这道题的程序了。"

——《上帝造题的七分钟·第二部》

所以这个神圣的任务就交给你了。

输入格式

第一行一个整数 n,代表数列中数的个数。

第二行 n 个正整数,表示初始状态下数列中的数。

第三行一个整数 m,表示有 m 次操作。

接下来 m 行每行三个整数 k l r

  • k=0 表示给 [l,r] 中的每个数开平方(下取整)。

  • k=1 表示询问 [l,r] 中各个数的和。

数据中有可能 l>r,所以遇到这种情况请交换 l 和 r。

输出格式

对于询问操作,每行输出一个回答。

输入输出样例

输入 #1复制

10
1 2 3 4 5 6 7 8 9 10
5
0 1 10
1 1 10
1 1 5
0 5 8
1 4 8

输出 #1复制

19
7
6

说明/提示

对于 30% 的数据,1≤n,m≤103,数列中的数不超过 32767。

对于 100% 的数据,1≤n,m≤105,1≤l,r≤n,数列中的数大于 0,且不超过 1012。

代码实现:

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

typedef long long ll;
const int MAXN = 1e5 + 10;

// 线段树节点结构
struct Node {
    int l, r;
    ll sum;
    ll max_val; // 区间内最大值,用于判断是否需要继续开平方
} tree[MAXN << 2];

ll arr[MAXN]; // 原始数组

// 构建线段树
void build(int node, int l, int r) {
    tree[node].l = l;
    tree[node].r = r;
    if (l == r) {
        tree[node].sum = arr[l];
        tree[node].max_val = arr[l];
        return;
    }
    int mid = (l + r) >> 1;
    build(node << 1, l, mid);
    build(node << 1 | 1, mid + 1, r);
    tree[node].sum = tree[node << 1].sum + tree[node << 1 | 1].sum;
    tree[node].max_val = max(tree[node << 1].max_val, tree[node << 1 | 1].max_val);
}

// 区间开平方操作
void update(int node, int l, int r) {
    // 如果当前区间与目标区间无交集或区间最大值为1(无需再开平方),直接返回
    if (tree[node].r < l || tree[node].l > r || tree[node].max_val == 1) {
        return;
    }
    // 如果当前区间完全包含在目标区间内且是叶子节点
    if (tree[node].l == tree[node].r) {
        tree[node].sum = (ll)sqrt(tree[node].sum);
        tree[node].max_val = tree[node].sum;
        return;
    }
    // 递归更新左右子树
    update(node << 1, l, r);
    update(node << 1 | 1, l, r);
    // 更新当前节点的和与最大值
    tree[node].sum = tree[node << 1].sum + tree[node << 1 | 1].sum;
    tree[node].max_val = max(tree[node << 1].max_val, tree[node << 1 | 1].max_val);
}

// 区间求和查询
ll query(int node, int l, int r) {
    // 如果当前区间与目标区间无交集,返回0
    if (tree[node].r < l || tree[node].l > r) {
        return 0;
    }
    // 如果当前区间完全包含在目标区间内,返回当前区间和
    if (l <= tree[node].l && tree[node].r <= r) {
        return tree[node].sum;
    }
    // 递归查询左右子树并求和
    return query(node << 1, l, r) + query(node << 1 | 1, l, r);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> arr[i];
    }
    
    // 构建线段树
    build(1, 1, n);
    
    int m;
    cin >> m;
    while (m--) {
        int k, l, r;
        cin >> k >> l >> r;
        if (l > r) swap(l, r); // 处理l>r的情况
        
        if (k == 0) {
            // 开平方操作
            update(1, l, r);
        } else {
            // 求和查询
            cout << query(1, l, r) << endl;
        }
    }
    
    return 0;
}

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

相关文章:

  • 建设展示类网站的意义域名备案官网
  • 网站建设活动策划成年学校培训班
  • 有专门做网站的公司吗百度排名优化软件
  • 做威客有什么靠谱网站南宁网络推广热线
  • 广州有网站建设学校武汉今日头条最新消息
  • 晋城有做网站的吗seo搜狗
  • 做足球原创短视频网站百度招聘网最新招聘信息
  • 建设论坛网站需要做什么免费域名注册
  • dede如何做手机网站项目营销推广方案
  • 做外贸网站应该关注哪些地方百度推广如何代理加盟
  • 服务器网站带宽seo排名优化
  • 班级网站建设首页报告网站免费seo
  • wordpress背景设置免费网站推广优化
  • 企业网站建设变相收取等级保护费6厦门最好的seo公司
  • 策划营销有限公司爱站网seo综合查询工具
  • 陶瓷网站源码seo技巧
  • 免费网站后台管理系统模板百度提交网站入口网址
  • 河南旅游网页设计南宁seo标准
  • 建一个团购网站昆山网站制作公司
  • wordpress修改备案号百度关键词优化首选667seo
  • 免费网站建设程序下载推广平台排行榜app
  • 网站怎么做下载网页代码seo优化网
  • 网站3d展示怎么做的网上做广告怎么收费
  • 湖南大型网站建设公司百度推广关键词技巧定价
  • 免费网站申请域名澳门seo个人博客
  • 免费二级域名申请网站空间长沙市seo百度关键词
  • 如何做病毒视频网站最新seo新手教程
  • 商城类网站如何做seo郑州抖音推广
  • 量力商务大厦网站建设seo网站推广方法
  • 高中作文网官网广西seo关键词怎么优化