poj 1195 (二维树状数组入门,模板题)
来源:互联网 发布:深圳行知小学怎么样 编辑:程序博客网 时间:2024/04/29 18:32
题目链接:点击打开链接
知识点:点击打开链接
题意:
输入指令n
n=0 输入s,将s*s的矩阵清零
n=1 输入X,Y,A,将(X,Y)这个方格对应的值加上A
n=2 输入L,B,R,T,求L<=i<=R,B<=j<=T范围内的矩阵的数值和
n=3 结束
模板题
#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <algorithm>using namespace std;int a[1026][1026];int lowbit[1026];int s;void Modify(int x,int y,int data){for(int i=x;i<=s;i+=lowbit[i]){for(int j=y;j<=s;j+=lowbit[j]){a[i][j]+=data;}}}int sum(int x,int y){int result =0;for(int i=x;i>0;i-=lowbit[i]){for(int j=y;j>0;j-=lowbit[j]){result+=a[i][j];}}return result;}int main(){int n;for(int i=1;i<1026;i++){lowbit[i] = i&(-i);}while(1){scanf("%d",&n);if(n==0){scanf("%d",&s);for(int i=0;i<=s;i++){for(int j=0;j<=s;j++){a[i][j]=0;}}continue;}if(n==1){int X,Y,A;scanf("%d%d%d",&X,&Y,&A);Modify(X+1,Y+1,A);continue;}if(n==2){int L,B,R,T;scanf("%d%d%d%d",&L,&B,&R,&T);L++,B++,R++,T++;printf("%d\n",sum(R,T)-sum(L-1,T)-sum(R,B-1)+sum(L-1,B-1));continue;}if(n==3) break;}return 0;}
0 0
- poj 1195 (二维树状数组入门,模板题)
- poj 1195 二维树状数组 及二维树状数组模板
- POJ 2155(二维树状数组模板)
- 二维树状数组模板题 poj 1195 Mobile phones
- POJ 2155 Matrix(二维树状数组模板)
- poj 1195(二维树状数组)
- poj 1195(二维树状数组)
- 二维树状数组(poj 1195)
- poj 2155 二维树状数组 poj 1195 二维树状数组
- POJ-1195 Mobile phones(二维树状数组裸题)
- POJ 1195 二维树状数组
- POJ 1195 二维树状数组
- POJ 1195 二维树状数组
- Poj 1195 二维树状数组
- POJ 1195 二维树状数组
- 【二维树状数组】POJ 1195
- POJ 1195 二维树状数组
- poj 1195 二维树状数组
- 第七天笔记
- 使用 Facebook开源动画库 POP 实现真实衰减动画
- 使用newInstance()来实例化fragment
- 阿里云配置nginx多域名指向
- [LeetCode]Combine Two Tables
- poj 1195 (二维树状数组入门,模板题)
- java io 装饰设计模式
- ScrollView不能全屏问题
- Android v7 包导入报错问题
- IOS学习笔记-第一天
- iOS Scrollview中的AutoLayout(纯IB)
- 初探nginx架构
- hdu4810组合数学
- 通过Python编写模拟器对方案进行测试和分析的方法_Prj001