矩阵的操作
来源:互联网 发布:数据库substr 编辑:程序博客网 时间:2024/06/10 11:07
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int sum[1000][1000];
int n,t;
int c(int x)
{ return x&(x^(x-1));
}
void change(int x,int y,int add)
{int ty=y;
while(x<=n)
{ y=ty;
while(y<=n)
{sum[x][y]=sum[x][y]+add;
y=y+c(y);
}
x=x+c(x);
}
}
int query(int x,int y)
{ int ans=0;
int ty=y;
while(x>0)
{ y=ty;
while(y>0)
{ans=sum[x][y]+ans;
y=y-c(y);
}
x=x-c(x);
}
return ans;
}
int main()
{ cin>>n>>t;
for(int i=1;i<=t;i++)
{int x1,x2,y1,y2;
char ch; cin>>ch;
if(ch=='C')
{cin>>x1>>y1>>x2>>y2;
change(x1,y1,1);
change(x1,y2+1,1);
change(x2+1,y1,1);
change(x2+1,y2+1,1);
}
else
{ cin>>x1>>y1;
cout<<(query(x1,y1)&1)<<endl;
}
}
return 0;
}
#include<cstdio>
#include<cmath>
using namespace std;
int sum[1000][1000];
int n,t;
int c(int x)
{ return x&(x^(x-1));
}
void change(int x,int y,int add)
{int ty=y;
while(x<=n)
{ y=ty;
while(y<=n)
{sum[x][y]=sum[x][y]+add;
y=y+c(y);
}
x=x+c(x);
}
}
int query(int x,int y)
{ int ans=0;
int ty=y;
while(x>0)
{ y=ty;
while(y>0)
{ans=sum[x][y]+ans;
y=y-c(y);
}
x=x-c(x);
}
return ans;
}
int main()
{ cin>>n>>t;
for(int i=1;i<=t;i++)
{int x1,x2,y1,y2;
char ch; cin>>ch;
if(ch=='C')
{cin>>x1>>y1>>x2>>y2;
change(x1,y1,1);
change(x1,y2+1,1);
change(x2+1,y1,1);
change(x2+1,y2+1,1);
}
else
{ cin>>x1>>y1;
cout<<(query(x1,y1)&1)<<endl;
}
}
return 0;
}
0 0
- 矩阵的一些操作
- 矩阵的掩码操作
- opencv矩阵的操作
- matlab矩阵的操作
- 矩阵的乘法操作
- Matlab_2矩阵的操作
- 矩阵的掩码操作
- opencv的矩阵操作
- 矩阵的操作
- 矩阵的掩码操作
- 上下文的矩阵操作
- 矩阵的操作
- Matlab矩阵的操作,
- 矩阵的操作
- 稀疏矩阵的操作
- 矩阵的相关操作
- opencv里矩阵的操作
- 稀疏矩阵的乘法操作
- Codeforces 601B Lipshitz Sequence(高效)
- 用sphinx_doc编写API文档
- Spark编程指南(Python版)
- 使用HttpURLConnection实现文件下载
- ==和equals的区别
- 矩阵的操作
- 南大软院大神养成计划——第十八天
- jQuery scrollTo
- chrome开发者工具功能拾遗:Sources面板篇
- iOS开发 - 百度地图
- unity与Android的交互
- U-boot mkimage指定Linux内核地址时的两种方式
- 【动态规划+递归】:poj1191,棋盘分割
- Asp.net mvc 使用echart的一点点经验