POJ_1656_Counting Black(水题)
2013-05-30 22:50
399 查看
题意:有一张100*100的网格,初始全部为白色,从(0,0)到(100,100)。
现在对他进行如下操作:
WHITE x , y , l
将(x,y)到(x+l-1,y+l-1)的矩阵格子都涂成白色。
BLACK x , y , l
将(x,y)到(x+l-1,y+l-1)的矩阵格子都涂成黑色。
TEST x , y , l
输出(x,y)到(x+l-1,y+l-1)的矩阵格子中黑色格子的数量
第一眼看,由于多次上当经验,觉得线段树可行,考虑一下数据范围与时间复杂度,果断暴力呀。。。
于是,水题一枚。。。
解题过程:1AC
时间:八分钟左右。
代码:
小结:刷水题是很重要di,如何在最短的时间内用最少的WA换来一个AC,我觉得是比赛中提升成绩的一个关键,十分重要的关键。。。
现在对他进行如下操作:
WHITE x , y , l
将(x,y)到(x+l-1,y+l-1)的矩阵格子都涂成白色。
BLACK x , y , l
将(x,y)到(x+l-1,y+l-1)的矩阵格子都涂成黑色。
TEST x , y , l
输出(x,y)到(x+l-1,y+l-1)的矩阵格子中黑色格子的数量
第一眼看,由于多次上当经验,觉得线段树可行,考虑一下数据范围与时间复杂度,果断暴力呀。。。
于是,水题一枚。。。
解题过程:1AC
时间:八分钟左右。
代码:
#include<iostream> #include<cstdio> using namespace std; int a[110][110]; void black(int x,int y,int l){ for(int i=x;i<=x+l-1;i++){ for(int j=y;j<=y+l-1;j++){ a[i][j]=1; } } } void white(int x,int y,int l){ for(int i=x;i<=x+l-1;i++){ for(int j=y;j<=y+l-1;j++){ a[i][j]=0; } } } int test(int x,int y,int l){ int cnt=0; for(int i=x;i<=x+l-1;i++){ for(int j=y;j<=y+l-1;j++){ if(a[i][j]){ cnt++; } } } return cnt; } int main(){ for(int i=1;i<=100;i++){ for(int j=1;j<=100;j++){ a[i][j]=0; } } char s[10]; int n,x,y,l; scanf("%d",&n); while(n--){ scanf("%s%d%d%d",s,&x,&y,&l); if(s[0]=='B') black(x,y,l); else if(s[0]=='W') white(x,y,l); else{ int ans=test(x,y,l); printf("%d\n",ans); } } return 0; }
小结:刷水题是很重要di,如何在最短的时间内用最少的WA换来一个AC,我觉得是比赛中提升成绩的一个关键,十分重要的关键。。。
相关文章推荐
- poj 1656 Counting Black 水题
- POJ 1656 Counting Black(我的水题之路——表格涂色)
- poj-1656-Counting Black-(树状数组)
- POJ 1656 Counting Black
- poj 1656 Counting Black
- poj-1656 Counting Black
- 【POJ 1656】 水题,不过抄了个二维线段树的代码
- poj 1656 Counting Black
- poj 1656 Counting Black
- POJ 1656 Counting Black
- POJ 1656 Counting Black(水~)
- POJ 1656 Counting Black
- Poj 1656 Counting Black
- poj 1656 Counting Black
- POJ-1656 Counting Black (二维树状数组)
- POJ-1656-Counting Black- 四分树
- poj 1656 Counting Black(模拟)
- 白色网格统计poj1656-Counting Black
- POJ1656 Counting Black [简单暴力]
- poj 1656 Counting Black