• CF815D Karen and Cards 单调栈+扫描线


    非常好的一道题.     

    我们考虑枚举哪些三元组不能成为答案.   

    然后你发现这成了一个立方体并问题.     

    通过枚举 $c$ ,可以将问题转化为二维矩形并问题.     

    由于从大到小枚举 $c$,所以并是不断增大的,然后增大的话就会让 $a/b$ 延伸到极大值位置. 

    所以只有 $a,b$ 是单调的,才会对答案有影响,这么更新就行了. 

    code: 

    #include <bits/stdc++.h> 
    #define N 500020  
    #define ll long long 
    #define setIO(s) freopen(s".in","r",stdin)   
    using namespace std;
    ll ans,sum;   
    int n,A,B,C,top,tx,ty;    
    int st[N],x[N],y[N];  
    struct node { int a,b,c; }p[N]; 
    bool cmpa(node a,node b) { return a.a<b.a;  }   
    bool cmpc(node a,node b) { return a.c>b.c;  }          
    int main() 
    { 
        // setIO("input");  
        int i,j;  
        scanf("%d%d%d%d",&n,&A,&B,&C);   
        for(i=1;i<=n;++i) 
            scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].c);      
        sort(p+1,p+1+n,cmpa);     
        for(i=1;i<=n;++i) 
        {
            while(top&&p[i].b>p[st[top]].b) --top;    
            st[++top]=i;   
        }
        sum=(ll)A*B,st[top+1]=0;   
        for(i=1;i<=top;++i) 
        {
            sum-=(ll)(p[st[i]].a-p[st[i-1]].a)*p[st[i]].b;     
            for(j=p[st[i-1]].a+1;j<=p[st[i]].a;++j) y[j]=p[st[i]].b; 
            for(j=p[st[i]].b;j>p[st[i+1]].b;--j) x[j]=p[st[i]].a;    
        }
        sort(p+1,p+1+n,cmpc);     
        for(tx=ty=j=1,i=C;i;--i) 
        {
            for(;j<=n&&p[j].c>=i;++j) 
            {
                for(;tx<=p[j].a;++tx) sum-=B-max(y[tx],ty-1);     
                for(;ty<=p[j].b;++ty) sum-=A-max(x[ty],tx-1);  
            }
            ans+=sum;  
        }
        printf("%lld
    ",ans);    
        return 0;  
    }
    

      

  • 相关阅读:
    POJ 1035-Spell checker(字符串)
    No valid host was found
    Does anyone successfully use USB drive in Windows7 guest?
    iptables 问题
    openstack kilo版本控制节点异常流量分析
    openstack 控制节点大流量对外发包,nf_conntrack,table full droping packets
    Error: rpmdb open failed
    openstack message queue
    POJ 1700 经典过河问题(贪心)
    树莓派遥控船项目计划
  • 原文地址:https://www.cnblogs.com/guangheli/p/12397091.html
Copyright © 2020-2023  润新知