| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么总是 OLE呢?郁闷……In Reply To:为什么总是 OLE呢?郁闷…… Posted by:willard at 2007-09-20 11:05:23 > void main()
> {
> int m, n;
> int ways[16] = {0,1,1,1,1,0,1,-1,0,-1,-1,-1,-1,0,-1,1};
> scanf("%d %d", &m, &n);
> while(m>0 && m <101 && n>0 && n<101)
> {
> POINT map[101][101];
> int i, j, k, count=0;
> for(i=0; i < m; i++)
> {
> char temp[101];
> cin.getline(temp, 100);
> for(j = 0; j < n; j++)
> {
> map[i][j].ch = temp[j];
> map[i][j].value = 0;
> map[i][j].x = i;
> map[i][j].y = j;
> }
> }
> for(i=0; i < m; i++)
> {
> for(j = 0; j < n; j++)
> {
> if(map[i][j].value!=0 || map[i][j].ch=='*')
> continue;
> POINT * searlist[11000];
> int cur=0, p;
> searlist[cur++] = &map[i][j];
> for(p=0; p < cur; p++)
> {
> for(k = 0; k <= 14; k++)
> {
> int x = searlist[p]->x+ways[k],
> y = searlist[p]->y+ways[k+1];
> if(x>=m || x<0 || y>=n || y<0)
> continue;
> if(map[x][y].ch!='@' || map[x][y].value!=0)
> continue;
> map[x][y].value++;
> searlist[cur++] = &map[x][y];
> }
> }
> count++;
> }
> }
> printf("%d\n", count);
> scanf("%d %d", &m, &n);
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator