• hdu 1698


    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <string>
    #include <vector>
    #include <list>
    #include <map>
    #include <queue>
    #include <stack>
    #include <bitset>
    #include <algorithm>
    #include <numeric>
    #include <functional>
    using namespace std;
    #define LL long long
    #define DB double
    #define N 100500
    const int INF = 0x3f3f3f3f;
    const LL INFF = 1LL << 60;
    const DB EPS = 1e-9;
    const DB OO = 1e15;
    const DB PI = acos(-1.0);
    int sum[N*4],col[N*4],ql,qr,v;
    void Pushup(int rt)
    {
        sum[rt] = sum[rt<<1] + sum[rt<<1|1];
    }
    void build(int rt,int l,int r)
    {
        sum[rt] = 1;
        col[rt] = 0;
        if(l == r) {return ;}
        int m = (l+r)>>1;
        build(rt<<1,l,m);
        build(rt<<1|1,m+1,r);
        Pushup(rt);
        return ;
    }
    void Pushdown(int rt,int m)
    {
        if(col[rt])
        {
            col[rt<<1] = col[rt<<1|1] = col[rt];
            sum[rt<<1] = (m-(m>>1))*col[rt];
            sum[rt<<1|1] = (m>>1)*col[rt];
            col[rt] = 0;
            return ;
        }
    }
    void updata(int rt,int l,int r)
    {
        if(l>=ql&&r<=qr)
        {
            sum[rt] = (r-l+1)*v;
            col[rt] = v;
           // Pushup(rt);
            return ;
        }
        Pushdown(rt,r-l+1);
        int m = (l+r)>>1;
        if(ql<=m) updata(rt<<1,l,m);
        if(m<qr) updata(rt<<1|1,m+1,r);
        Pushup(rt);
    }
    int main()
    {
        int n,m,t,cas = 1;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d %d",&n,&m);
            build(1,1,n);
            while(m--)
            {
                scanf("%d %d %d",&ql,&qr,&v);
                updata(1,1,n);
            }
            printf("Case %d: The total value of the hook is %d.
    ",cas++,sum[1]);
        }
        return 0;
    }
    View Code

    线段树区间修改

  • 相关阅读:
    python线程同步
    闭包、装饰器
    python中的return返回值
    常用内建函数
    python迭代器与生成器
    python基础之数据类型
    VS生成解决方案时报错: Your project does not reference ".NETFramework,Version=v4.5"
    Unity 低版本打开高版本项目
    关闭应用程序的所有子窗体
    按钮接收 Enter 键
  • 原文地址:https://www.cnblogs.com/llei1573/p/3912974.html
Copyright © 2020-2023  润新知