PKU 3363 Annoying painting tool 题解

先开始一直想着很复杂的题目
想了很久
后来看那么多人都过了
感觉应该很简单
然后就想着贪心应该就可以
然后就贪心了一下
顺序往下扫描然后看到这个点是1
那么就把这点为左上角的点的矩形方块操作一下啊
然后一直这样往后就可以了
 1#include<stdio.h>
 2
 3char str[110][110];
 4
 5int main()
 6{
 7    int x,y,len,wide,i,c,p1,p2,j;
 8    while(1)
 9    {
10        scanf("%d %d %d %d"&x,&y,&len,&wide);
11        if(x == 0 && y == 0 && len == 0 && wide == 0)
12            break;
13        for(i = 0; i < x; i++)
14            scanf("%s",str[i]);
15        c = 0;
16        for(i = 0; i < x; i++)
17        {
18           for(j = 0; j < y; j++)
19           {
20               if(str[i][j] == '1')
21               {
22                   if(i+len-1 >= x || j+wide-1 >= y) break;
23                   c++;
24                   for(p1 = i; p1 < i+len; p1++)
25                       for(p2 = j; p2 < j+wide; p2++)
26                       {
27                           if(str[p1][p2] == '1')
28                               str[p1][p2] = '0';
29                           else 
30                               str[p1][p2] = '1';
31                       }

32               }

33           }

34           if(j != y) break;
35        }

36        if(i != x || j != y)
37            printf("-1\n");
38        else
39            printf("%d\n",c);
40    }

41    return 0;
42}

43
44

posted on 2008-07-20 22:14 gong 阅读(998) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿(6)

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜