!
2015-11-24 23:03
239 查看
!
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出一个n*n的矩阵,矩阵中只有0和1,现在有两种操作:1 x y 将第x行第y列的数字改变(0变1,1变0)
2 x1 y1 x2 y2求由左上角(x1,y1)到右下角(x2,y2)组成的矩形中的1的个数。
现在初始的矩阵全是0,之后有一系列操作。保证数据输入合法。
输入
第一行输入一个正整数T,代表测试组数。(T <= 10)每组测试数据的第一行有两个数n,m。(1 <= n <= 500 , 1 <= m <= 10000)
之后是连续m行,代表m次操作。(1 <= x1,y1 <= x2,y2 <= n)
输出
对每次询问输出(x1,y1)到(x2,y2)矩形内的1的个数示例输入
1 3 3 1 2 2 1 1 1 2 1 1 3 3
示例输出
2
提示
来源
windream示例程序
#include<stdio.h> #include<string.h> int a[600][600]; int main() { int i,j,n,m,k,t,x,y,x1,x2,y1,y2,l1,l2,b; scanf("%d",&t); while(t--) { memset(a,0,sizeof(a)); scanf("%d %d",&n,&m); for(i=1;i<=m;i++) { scanf("%d",&k); if(k==1) { scanf("%d %d",&x,&y); if(a[x][y]) a[x][y]=0; else a[x][y]=1; } if(k==2) { b=0; scanf("%d %d %d %d",&x1,&y1,&x2,&y2); for(l1=x1;l1<=x2;l1++) for(l2=y1;l2<=y2;l2++) if(a[l1][l2]) b++; printf("%d\n",b); } } } }
相关文章推荐
- LintCode:旋转链表
- 关于addSpriteFramesWithFile读取失败
- 求两个并联电阻的值
- 如何在datetime.strptime中添加时区
- qtcreator minggw 支持c++11
- finereport的服务器负载均衡部署--tomcat
- http://macrochen.iteye.com/blog/1414568
- LintCode:旋转图像
- 开源的DevOps开发工具箱
- Matlab 实现矩阵的满秩分解(最大秩分解)
- 错误处理
- 第二百三十六天 how can I 坚持
- odoo worker 异常Exception("bus.Bus unavailable")
- Java FP: Java中函数式编程的Map和Fold(Reduce)
- 对数据库中完整性概述的认识
- Coderforce #332 D. Spongebob and Squares
- 窗体运行前,检查是否互斥
- 原生JS练习计算器和banner条滚动效果
- lua学习03——table
- IOS开发真机调试