二维树状数组+叉分

区间修改转化为单点修改

单点查询本来就可视为区间查询

于是本题可解

PS:不知道为什么函数传参数,传的是变量就会出现奇奇怪怪的问题?

所以读入单独写了,还有就是循环的初始化硬是多定义了一组变量,头大啊!

暂且把这种写法视为标准写法吧!

#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN=;
int t[MAXN][MAXN],n;
int lb(int i){return i&-i;}
void init(){memset(t,,sizeof(t));}
void add(int x,int y,int v){
for(int i=x;i<=n;i+=lb(i))for(int j=y;j<=n;j+=lb(j))t[i][j]+=v;
}
int sum(int x,int y){
int ans=;for(int i=x;i;i-=lb(i))for(int j=y;j;j-=lb(j))ans+=t[i][j];return ans;
}
int a,b,c,d,x,T;char s[];
void C(){cin>>a>>b>>c>>d;add(a,b,),add(c+,b,),add(a,d+,),add(c+,d+,);}
void Q(){cin>>a>>b;cout<<sum(a,b)%<<endl;} int main(){
for(scanf("%d",&x);x--;x?puts(""):){
scanf("%d%d",&n,&T),init();
while(T--)scanf("%s",s),s[]=='C'?C():Q();
}
   return 0;
}

最新文章

  1. Ruby 多线程探索实践与归纳总结
  2. WPF 格式化输出- IValueConverter接口的使用
  3. linux Tomcat restart脚本简单版
  4. 格而知之3:Core Data的基本使用
  5. 统计处理包Statsmodels: statistics in python
  6. Spark入门PPT分享
  7. Day4:html和css
  8. Exception、Error、运行时异常与一般异常有何异同
  9. 美化你的GRUB,全面支持中文(菜单、提示、帮助)适用7.04-9.04
  10. TFDStoredProc执行sql server的部分存储过程报错,有的是好的。
  11. MyBatis开发Dao层的两种方式(Mapper动态代理方式)
  12. react-native 入门教程
  13. 几个经典的数学库之一学习---VCGlib(3)
  14. JDBC编程扩展
  15. 关于document.createDocumentFragment()(转)
  16. vux版本升级
  17. Cassandra go语言client使用
  18. Java中的并发工具类:CountDownLatch、CyclicBarrier和Semaphore
  19. malloc的可重入性和线程安全分析
  20. create_workqueue和create_singlethread_workqueue【转】

热门文章

  1. 案例-pyqt进度条案例
  2. 【转】Servlet 九大对象和四个作用域
  3. Pycharm控制台乱码问题
  4. 第60届IMO 第5题
  5. vue 学习3
  6. sublime text3插件使用
  7. vue项目中使用element ui上传图片到七牛
  8. Raspbain系统无屏幕无网线通过ssh远程连接树莓派设置wifi步骤
  9. 刷题22. Generate Parentheses
  10. ORACLE不常用但实用的技巧- 树查询 level用法