当前位置: 首页 > news >正文

poj1195

题意:给定一个矩阵有查询有添加操作。

hit :很明显是二维树状数组(第一道二维fenwick哈)

横向纵向维护两个树状数组所以是二维,详见代码

  1 //二维树状数组

 2  #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5  using  namespace std;
 6  const  int MAX= 1024 + 10;
 7  int c[MAX][MAX];
 8  int n;
 9  int lowbit( int x)
10 {
11      return x&(-x);
12 }
13  void add( int x, int y, int d)
14 {
15      for( int i=x;i<=n;i+=lowbit(i))
16     {
17          for( int j=y;j<=n;j+=lowbit(j))
18         {
19             c[i][j]+=d;
20         }
21     }
22 }
23  int sum( int x, int y)
24 {
25      int ans= 0;
26      for( int i=x;i>= 1;i-=lowbit(i))
27     {
28          for( int j=y;j>= 1;j-=lowbit(j))
29         {
30             ans+=c[i][j];
31         }
32     }
33      return ans;
34 }
35  int main()
36 {
37      int s,x,y,a;
38      int x1,x2,y2,y1;
39     memset(c, 0, sizeof(c));
40      while(scanf( " %d ",&s)&&s!= 3)
41     {
42          if(s== 0) scanf( " %d ",&n);
43          else  if(s== 1)
44         {
45             scanf( " %d %d %d ",&x,&y,&a);
46             add(x+ 1,y+ 1,a);
47         }
48          else
49         {
50             scanf( " %d %d %d %d ",&x1,&y1,&x2,&y2);
51             x1++,x2++,y1++,y2++;
52              long  long ans=sum(x2,y2)-sum(x1- 1,y2)-sum(x2,y1- 1)+sum(x1- 1,y1- 1);
53             printf( " %lld\n ",ans);
54         }
55     }
56      return  0;
57 }

转载于:https://www.cnblogs.com/acvc/p/3534472.html

相关文章:

  • PHP Install in IIS
  • mongoDB研究笔记:复制集故障转移机制
  • 网络资源收集
  • (顺序)容器的好伴侣 --- 容器适配器
  • javascript实现自动关闭的alert对话框
  • ASP.NET中上传图片检测其是否为真实的图片 防范病毒上传至服务器
  • cmd命令行中的errorlevel和延迟赋值
  • 我的项目经理2
  • iOS 开发小常识 开发笔记
  • 程序员修炼之道(一)
  • DevExpress.XtraEditors.TextEdit 设为密码输入框
  • 层次遍历二叉树(编程之美3.10)
  • 算法起步之Prim算法
  • 我比谁都相信努力奋斗的意义
  • jsp页面中从forEach里向action里面传递其中的一个对象
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 《深入 React 技术栈》
  • CentOS 7 修改主机名
  • CSS 专业技巧
  • ES6之路之模块详解
  • HTML中设置input等文本框为不可操作
  • HTTP那些事
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • input的行数自动增减
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • LeetCode29.两数相除 JavaScript
  • magento2项目上线注意事项
  • MySQL用户中的%到底包不包括localhost?
  • React 快速上手 - 07 前端路由 react-router
  • React16时代,该用什么姿势写 React ?
  • redis学习笔记(三):列表、集合、有序集合
  • Sass 快速入门教程
  • vue 配置sass、scss全局变量
  • WebSocket使用
  • 如何用vue打造一个移动端音乐播放器
  • 一文看透浏览器架构
  • C# - 为值类型重定义相等性
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 函数计算新功能-----支持C#函数
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​批处理文件中的errorlevel用法
  • ​一些不规范的GTID使用场景
  • # C++之functional库用法整理
  • #android不同版本废弃api,新api。
  • #传输# #传输数据判断#
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)基于IDEA的JAVA基础1
  • (转)VC++中ondraw在什么时候调用的
  • .NET Core引入性能分析引导优化
  • .Net mvc总结