我叫张小黑
张小黑的挣扎生活
posts - 66,  comments - 109,  trackbacks - 0
http://acm.pku.edu.cn/JudgeOnline/problem?id=3363
这道题刚开始看懂题时,我是死活不敢动手,就是不相信就是这么做,后来用百度搜了搜这题,在一个博客上看到他对这题的想法,简单的模拟,我这才开始写,值得一提的是,这道题帮助我发现了个我不好的习惯,今天因为这个习惯,使两道题都tl,我总是在没读完数据,输出结果后,就经过一个fflush来刷干净缓冲,但是把结束条件也刷掉了,使程序断不了,导致tl。(这都多些partychen :-))
 1#include<iostream>
 2using namespace std;
 3#define Max 100
 4int main()
 5{
 6    int n,m,r,c,cont;
 7    int i,j,p,q,t;
 8    int map[Max][Max];
 9    char row[Max];
10    while(scanf("%d%d%d%d",&n,&m,&r,&c)){
11        getchar();
12        memset(map,0,sizeof(map));
13        if(!n&&!m&&!r&&!c)break;
14        cont=0;
15        t=0;
16        for(i=0;i<n;i++){
17            gets(row);
18            for(j=0;j<m;j++){
19                if(map[i][j]!=row[j]-'0')
20                    if(i+r<=n&&j+c<=m){
21                        for(q=i;q<i+r;q++)
22                            for(p=j;p<j+c;p++){
23                                map[q][p]+=1;
24                                map[q][p]%=2;}
25                            cont++;}
26                    else {t=1;break;}
27            }
28            if(t==1)break;
29        }
30        if(t==1){
31            while((++i)<n)gets(row);
32            printf("-1\n");}
33        else printf("%d\n",cont);
34    }
35    return 0;
36}
posted on 2008-02-27 21:58 zoyi 阅读(295) 评论(0)  编辑 收藏 引用 所属分类: acm

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


欢迎光临 我的白菜菜园

<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(8)

随笔分类

随笔档案

文章档案

相册

acmer

online judge

队友

技术

朋友

搜索

  •  

最新评论

阅读排行榜

评论排行榜