zoukankan      html  css  js  c++  java
  • HDU1698 Just a Hook(线段树成段替换、区间求和,延迟标记的应用)

    题意:胖子有一条大jb,大JB由n个小JB组成,每次操作将一个区间的小JB变成金银铜三者之一,最后取出所有区间的JB总价值

    思路:和刷气球差不多意思了,简单的区间更新,无需更新到叶子节点,防止超时

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <queue>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    #define M 100005
    #define ls node<<1,l,m
    #define rs node<<1|1,m+1,r
    int n,m,tree1[M<<2],tree2[M<<2];
    void pushdown(int node,int m)
    {
        if(tree1[node])
        {
            tree1[node<<1]=tree1[node<<1|1]=tree1[node];
            tree2[node<<1]=(m-(m>>1))*tree1[node];
            tree2[node<<1|1]=(m>>1)*tree1[node];
            tree1[node]=0;
        }
    }
    void buildtree(int node,int l,int r)
    {
        tree1[node]=0;
        tree2[node]=1;
        if(l==r) return ;
        int m=(l+r)>>1;
        buildtree(ls);
        buildtree(rs);
        tree2[node]=tree2[node<<1]+tree2[node<<1|1];
    }
    void update(int L,int R,int c,int node,int l,int r)
    {
        if(L<=l&&r<=R)
        {
            tree1[node]=c;
            tree2[node]=c*(r-l+1);
            return ;
        }
        pushdown(node,r-l+1);
        int m=(l+r)>>1;
        if(L<=m) update(L,R,c,ls);
        if(R>m) update(L,R,c,rs);
        tree2[node]=tree2[node<<1]+tree2[node<<1|1];
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        int t,cas=1;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&m);
            buildtree(1,1,n);
            while(m--)
            {
                int a,b,c;
                scanf("%d%d%d",&a,&b,&c);
                update(a,b,c,1,1,n);
            }
            printf("Case %d: The total value of the hook is %d.
    ",cas++,tree2[1]);
        }
        return 0;
    }
  • 相关阅读:
    RN常用布局和CSS
    RN常用组件
    海屯天地技术服务支持
    微前端应用解决方案
    React组件复用方式
    Webpack-CodeSplit(按需加载)
    Webpack-CodeSplit(静态文件篇)
    Webpack抽离第三方类库以及common解决方案
    Javascript十六种常用设计模式
    React hooks详解
  • 原文地址:https://www.cnblogs.com/d-e-v-i-l/p/4746385.html
Copyright © 2011-2022 走看看