POJ2155
来源:互联网 发布:matlab 矩阵元素 编辑:程序博客网 时间:2024/05/01 02:25
题目是说对一个01矩形区间有两种操作:一是置反某一块区间[a][b]--->[c][d](0变1,1变0),二是询问[i][j]位置处的当前值是0还是1。转化为树状数组的方法便是:01矩阵初始化为0,对于置反操作,等价于将小矩形块的四角置反(以此表示这四角代表的矩形块被执行置反),于是我们对于置反操作,只操作四角的即可(可以累加操作次数,也可以单纯的模拟置反操作,此时可利用bool数组),然后对于询问,只统计其左上方的矩阵元素的和(累加)奇偶情况,奇数说明最终置1,否则置0。
注意修改函数add只是对于[i][j]以及其后的点起作用,而我们统计的时候显然是不把自身统计在内的,所以对于子矩形块终点[c][d],要分别++,这样就可避免统计的时候把自己算在内(刘汝佳的讲义讲到这题时没提到这点),然后就是裸的二维树状数组操作了。楼教的题,很不错。
- POJ2155
- poj2155
- poj2155
- poj2155
- POJ2155
- poj2155
- poj2155
- poj2155
- POJ2155
- poj2155
- POJ2155
- poj2155
- POJ2155 Matrix
- POJ2155:Matrix
- poj2155 Matrix
- poj2155 Matrix
- poj2155 Matrix
- POJ2155 Matrix
- 1等于0.循环9吗?
- PowerDesigner快捷键
- script调用asp代码
- PHP中数组的初期化
- Oracle数据库,创建用户,创建表空间,授权
- POJ2155
- hdu 1084 What Is Your Grade?
- JSP实现分页
- foj1465 Sub Sequence 记录
- POJ3641 Pseudoprime numbers(快速幂取模)
- 鼠标形态
- 网站基本测试方法-1. 链接测试基本方法
- JAVA相关基础知识
- 郁闷