poj 1195(树状数组)
来源:互联网 发布:php 判断身份证号码 编辑:程序博客网 时间:2024/06/02 04:26
题目链接:点击打开链接
题目分析:二维树状数组的模板题,直接做就可以了; (这里注意一个问题,题目的下标是从0开始记得,树状数组的下标要从1开始)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n;int C[1030][1030];void init_C(){ for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) C[i][j] = 0;}inline int lowbit(int x){ return x&-x;}void add(int x, int y, int d){ for(int i = x; i <= n; i+=lowbit(i)) for(int j = y; j <= n; j+=lowbit(j)) C[i][j] += d;}int sum(int x, int y){ int res = 0; for(int i = x; i > 0; i-=lowbit(i)) for(int j = y; j > 0; j-=lowbit(j)) res+=C[i][j]; return res;}int main(){ int op, x, y, d ,l, b, r, t; while(~scanf("%d", &op) && op != 3){ if(op == 0) { scanf("%d", &n); init_C(); } else if(op == 1){ scanf("%d%d%d", &x, &y, &d); add(x+1, y+1, d); } else if(op == 2){ scanf("%d%d%d%d", &l, &b, &r, &t); l++, b++, r++, t++; int ans = sum(r, t)+sum(l-1, b-1)-sum(r, b-1)-sum(l-1, t); printf("%d\n", ans); } } return 0;}
0 0
- 树状数组 poj 1195
- poj 1195(树状数组)
- poj 1195 树状数组
- poj 2155 二维树状数组 poj 1195 二维树状数组
- POJ 1195 二维树状数组
- POJ 1195 二维树状数组
- POJ 1195 二维树状数组
- Poj 1195 二维树状数组
- POJ 1195 二维树状数组
- 【二维树状数组】POJ 1195
- POJ 1195 二维树状数组
- poj 1195(树状数组)
- poj 1195 二维树状数组
- POJ 1195 二维树状数组
- POJ 1195 树状数组详解
- 树状数组模板+ poj 1195
- POJ 1195 二维树状数组
- POJ 1195 二维树状数组
- 平台客户端如何打包
- Android 定时操作方法AlarmManager,Timer,Handler
- C++11学习笔记1---序
- 设计模式-责任链模式
- ios开发系列之使用NSDirectoryEnumerator的对象获得目录的资源列表
- poj 1195(树状数组)
- Linux下iometer/dynamo用法
- jsp中确认对话框的使用
- VC中生成动态链接库的三种方式(导出函数)
- JS中常用的字符串函数
- 如何运行后缀为ocx的文件
- 猎豹移动面试题
- ie8响应式兼容方案,respond.js的用法及使用时无效的解决办法
- Eclipse 打开时提示fail to create JVM 问题