zoukankan      html  css  js  c++  java
  • 【BZOJ1452】【JSOI2009】count

    暴力出奇迹……
    原题:

    图片题面好评(图片样例差评

    我最开始的思路:

    容斥,变成每次询问((1,1),(x,y))这个矩阵中颜色为c的个数,然后三维偏序!cdq分治!

    但是2e5的询问好像并不大丈夫?乘个4就变成8e5了

    然后搜题解……woc原来还可以这么玩……

    因为每次值查询一个值所以直接开100个树状数组xjb搞就行了,复杂度没问题

    那么如果把询问减小,然后每次询问的是一个区间的值要怎么做呢嘿嘿嘿

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 using namespace std;
     7 int rd(){int z=0,mk=1;  char ch=getchar();
     8     while(ch<'0'||ch>'9'){if(ch=='-')mk=-1;  ch=getchar();}
     9     while(ch>='0'&&ch<='9'){z=(z<<3)+(z<<1)+ch-'0';  ch=getchar();}
    10     return z*mk;
    11 }
    12 int n,m,quq,a[310][310];
    13 int e[110][310][310],lbt[310];
    14 void gtlbt(){  for(int i=1;i<=300;++i)  lbt[i]=i&-i;}
    15 void mdf(int x,int y,int z,int v){
    16     for(int i=x;i<=n;i+=lbt[i])for(int j=y;j<=m;j+=lbt[j])
    17         e[z][i][j]+=v;
    18 }
    19 int qr(int x,int y,int z){
    20     int bwl=0;
    21     for(int i=x;i;i-=lbt[i])for(int j=y;j;j-=lbt[j])
    22         bwl+=e[z][i][j];
    23     return bwl;
    24 }
    25 int main(){//freopen("ddd.in","r",stdin);
    26     //freopen("ddd.out","w",stdout);
    27     gtlbt();
    28     cin>>n>>m;
    29     for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)
    30         mdf(i,j,a[i][j]=rd(),1);
    31     int mk,x1,y1,x2,y2,v,bwl=0;
    32     cin>>quq;
    33     while(quq--){
    34         mk=rd();
    35         if(mk==1){
    36             x1=rd(),y1=rd(),v=rd();
    37             mdf(x1,y1,a[x1][y1],-1),mdf(x1,y1,a[x1][y1]=v,1);
    38         }
    39         else{
    40             x1=rd(),x2=rd(),y1=rd(),y2=rd(),v=rd();
    41             bwl=qr(x1-1,y1-1,v)+qr(x2,y2,v);
    42             bwl-=qr(x1-1,y2,v)+qr(x2,y1-1,v);
    43             printf("%d
    ",bwl);
    44         }
    45     }
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    串口通信
    无法安装SQL提示文件被挂起
    flash图片幻灯片浏览
    document.all与WEB标准
    在新窗口中打开页面 的asp.net后台代码
    sql 触发器
    无技术含量的正则表达式笔记
    两个FTP服务器之间传送数据
    repeater嵌套
    登录
  • 原文地址:https://www.cnblogs.com/JSL2018/p/6538946.html
Copyright © 2011-2022 走看看