• 在给定的区间上对每个数都开方 最后还是在一段上求和


    #include<algorithm>
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #include<math.h>
    using namespace std;
    #define N 100005
    #define lson rood<<1
    #define rson rood<<1|1
    long long w[N];
    struct node
    {
        int len,l,r,mid;
        long long v;
    }a[N<<2];
    void q(int rood,int l,int r)
    {
        a[rood].l=l;a[rood].r=r;a[rood].mid=(r+l)/2;
        a[rood].len=(r-l+1);
        if(l==r)
        {
            a[rood].v=w[l];
            return ;
        }
        q(lson,l,a[rood].mid);
        q(rson,a[rood].mid+1,r);
        a[rood].v=a[lson].v+a[rson].v;
    }
    void qq(int rood,int l,int r)
    {
        if(a[rood].v==a[rood].len)
            return ;
        if(a[rood].l==a[rood].r)
        {
            a[rood].v=(long long)(sqrt)(a[rood].v*1.0);
            return ;
        }
        if(a[rood].mid>=r) qq(lson,l,r);
        else if(a[rood].mid<l) qq(rson,l,r);
        else
        {
            qq(lson,l,a[rood].mid);
            qq(rson,a[rood].mid+1,r);
        }
        a[rood].v=a[lson].v+a[rson].v;
    }
    long long qqq(int rood,int l,int r)
    {
        if(a[rood].l==l&&a[rood].r==r)
            return a[rood].v;
        if(a[rood].mid>=r) return qqq(lson,l,r);
        else if(a[rood].mid<l) return qqq(rson,l,r);
        else
        {
            return qqq(lson,l,a[rood].mid)+qqq(rson,a[rood].mid+1,r);
        }
    }
    int main()
    {
        int n,e,f,g,m,t=1;
        while(scanf("%d",&n)!=EOF)
        {
            for(int i=1;i<=n;i++)
                scanf("%lld",&w[i]);
            q(1,1,n);
            scanf("%d",&m);
            printf("Case #%d:
    ",t++);
            for(int i=0;i<m;i++)
            {
                scanf("%d%d%d",&g,&e,&f);
                if(e>f) swap(e,f);
                if(g==0) qq(1,e,f);
                else printf("%lld
    ",qqq(1,e,f));
            }
            printf("
    ");
        }
        return 0;
    }

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

  • 相关阅读:
    LG P4161 [SCOI2009]游戏/LG P6280 [USACO20OPEN]Exercise G
    BZOJ3473 字符串
    BZOJ4545 DQS的trie
    LG P5212 SubString
    batj ,tmd用的都是什么技术。
    java社招面试题目
    python,go,java 的发展
    互联网 后端技术必备知识
    java语言三件套
    java spring全家桶
  • 原文地址:https://www.cnblogs.com/a719525932/p/5667291.html
Copyright © 2020-2023  润新知