[luogu3397]地毯(二维线段树组)
来源:互联网 发布:js删除指定class的div 编辑:程序博客网 时间:2024/06/02 21:24
在n*n的格子上有m个地毯。
给出这些地毯的信息,问每个点被多少个地毯覆盖。
输入样例#1:
5 3
2 2 3 3
3 3 5 5
1 2 1 4
输出样例#1:
0 1 1 1 0
0 1 1 0 0
0 1 2 1 1
0 0 1 1 1
0 0 1 1 1
#include<iostream>using namespace std;const int maxn=1010;int n,m;int x1,y1,x2,y2;int bit[maxn][maxn];//二维树状数组void add(int x,int y,int v){ for (int i=x;i<=n;i+=i&-i) for (int j=y;j<=n;j+=j&-j) bit[i][j]+=v; }long long sum(int x,int y){ long long ans=0; for (int i=x;i>0;i-=i&-i) for (int j=y;j>0;j-=j&-j) ans+=bit[i][j]; return ans;}int main(){ cin>>n>>m; while (m--){ cin>>x1>>y1>>x2>>y2; add(x2+1,y2+1,1); add(x1,y2+1,-1); add(x2+1,y1,-1); add(x1,y1,1); //此处有坑 } for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++) cout<<sum(i,j)<<" "; cout<<"\n"; }}
阅读全文
0 0
- [luogu3397]地毯(二维线段树组)
- POJ1195(二维线段树)
- 地毯
- 二维线段树(二维树状数组)poj2155
- poj 1195(二维线段树||二维树状数组)
- 【二维线段树(二维区间GCD)】[NOI2012]魔幻棋盘
- (二维线段树) Matrix (P2155)
- POJ 2155(二维zkw线段树)
- UVA11297--Census(二维线段树)
- HDU 4819 Mosaic (二维线段树)
- hdu 4819(二维线段树)
- 二维线段树(单点更新)
- zoj 2859(二维线段树)
- HDU 4819 Mosaic(二维线段树)
- POJ 2155 Matrix(二维线段树)
- 二维线段树(Mosaic,hdu 4819)
- hdu4819 Mosaic 二维线段树(树套树)
- 二维线段树(Matrix,poj 2155)
- 你厌恶现在的圈子,那就努力跳出去
- 十个方法提高网站的访问
- HDU 2594 Simpsons’ Hidden Talents
- shell脚本压缩js和css
- MPP和HAdoop的关系
- [luogu3397]地毯(二维线段树组)
- 欢迎使用CSDN-markdown编辑器
- 以太坊go-ethereum常见问题汇总
- viewpager无限轮播加点
- java 多继承
- mybatis分页查询
- fzu-2268
- Oracle数据库改密码
- 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字