zoukankan      html  css  js  c++  java
  • T7

      1 #include<iostream>
      2 #include<cstring>
      3 #include<cstdio>
      4 #include<algorithm>
      5 using namespace std;
      6 int s,n;
      7 int op;
      8 const int maxn=2e6+10;
      9 int c[maxn];
     10 struct SS
     11 {
     12     int lowbit(int x)
     13     {
     14         return x&(-x);
     15     }
     16     void add(int x,int w)
     17     {
     18         for(;x<=n;x+=lowbit(x))
     19         {
     20             c[x]+=w;
     21         }
     22     }
     23     int sum(int x)
     24     {
     25         int res=0;
     26         for(;x;x-=lowbit(x))
     27         {
     28             res+=c[x];
     29         }
     30         return res;
     31     }
     32 }XX;
     33 int ans[maxn];
     34 
     35 struct node
     36 {
     37     int id;
     38     int op;
     39     int x1,x2,y1,y2;
     40     bool operator <(const node &x)const 
     41     {
     42         if(x1==x.x1)
     43         {
     44             return op<x.op;
     45         }
     46         return x1<x.x1;
     47     }
     48 }way[maxn],a[maxn];
     49 void cdq(int l,int r)
     50 {
     51     if(l==r)
     52     {
     53         return ;
     54     }
     55     int mid=(l+r)>>1;
     56     cdq(l,mid);
     57     cdq(mid+1,r);
     58     int cnt=0;
     59     for(int i=l;i<=mid;i++)
     60     {
     61         if(way[i].op==1)
     62         {
     63             a[cnt++]=way[i];
     64         }
     65     }
     66     for(int i=mid+1;i<=r;i++)
     67     {
     68         if(way[i].op==2)
     69         {
     70             a[cnt++]=way[i];
     71             a[cnt-1].op=0;
     72             a[cnt++]=way[i];
     73             a[cnt-1].op=2;
     74             a[cnt-1].x1=way[i].x2;
     75         }
     76     }
     77     sort(a,a+cnt);
     78     for(int i=0;i<cnt;i++)
     79     {
     80         if(a[i].op==0)
     81         {
     82             ans[a[i].id]-=(XX.sum(a[i].y2)-XX.sum(a[i].y1-1));
     83         }
     84         else
     85         if(a[i].op==1)
     86         {
     87             XX.add(a[i].y1,a[i].x2);
     88         }
     89         else
     90         {
     91             ans[a[i].id]+=(XX.sum(a[i].y2)-XX.sum(a[i].y1-1));
     92         }
     93     }
     94 }
     95 inline int read()
     96 {
     97     int x=0,f=1;
     98     char ch=getchar();
     99     while(isdigit(ch)==0 && ch!='-')ch=getchar();
    100     if(ch=='-')f=-1,ch=getchar();
    101     while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
    102     return x*f;
    103 }
    104 int main()
    105 {
    106     memset(c,0,sizeof(c));
    107     memset(ans,0,sizeof(ans));
    108     s=read();
    109     n=read();
    110     int cnt=0;
    111     int tot=0;
    112     while(scanf("%d",&op)&&op!=3)
    113     {
    114         if(op==1)
    115         {
    116             int x,y,z;
    117             x=read();
    118             y=read();
    119             z=read();
    120             way[++cnt].op=op;
    121             way[cnt].id=-1;
    122             way[cnt].x1=x;
    123             way[cnt].y1=y;
    124             way[cnt].x2=z;
    125             way[cnt].y2=0;
    126             
    127         }
    128         if(op==2)
    129         {
    130             int x1,x2,y1,y2;
    131             x1=read();
    132             y1=read();
    133             x2=read();
    134             y2=read();
    135             way[++cnt].op=op;
    136             way[cnt].id=++tot;
    137             way[cnt].x1=x1;
    138             way[cnt].x2=x2;
    139             way[cnt].y1=y1;
    140             way[cnt].y2=y2;
    141         }
    142     }
    143     cdq(1,cnt);
    144     for(int i=1;i<=tot;i++)
    145     {
    146         printf("%d
    ",ans[i]);
    147         //cout<<ans[i]<<endl;
    148     }
    149     return 0;
    150 }
  • 相关阅读:
    mysql通过data目录恢复数据库
    CentOS安装TortoiseSVN svn 客户端
    CentOS上安装Node.js
    PHP--进行模块化设计
    PHP开发绝对不能违背的安全铁则
    达内培训:php在线端口扫描器
    使用 PHP 限制下载速度
    使用无限生命期Session的方法
    使用php作linux自动执行脚本
    腾讯星座运势api
  • 原文地址:https://www.cnblogs.com/2529102757ab/p/10994530.html
Copyright © 2011-2022 走看看