// 话说这题太水,但是由于把j写成i,调试了半天,其实那不叫调试啦,print而已,不知道debug真让人伤心啊...
Gssn
1 Source Code
2
3 Problem: 2339 User: eth1
4 Memory: 820K Time: 250MS
5 Language: G++ Result: Accepted
6
7 Source Code
8 #include <iostream>
9 #include <string>
10 #include <cmath>
11 #include <algorithm>
12 #include <cstdio>
13 #include <cstring>
14 #include <map>
15
16 using namespace std;
17 map<char,int> mm;
18
19 int s[105][105],tem[105][105],mapp[4][4],n,m,day;
20 void solve()
21 {
22 //memset(tem,-1,sizeof(tem));
23 for(int i=0;i<n;i++)
24 for(int j=0;j<m;j++)
25 {
26 int ss=s[i][j];
27 if(i-1>=0 && mapp[ss][s[i-1][j]]) tem[i][j]=s[i-1][j];
28 else if(i+1<n && mapp[ss][s[i+1][j]]) tem[i][j]=s[i+1][j];
29 else if(j-1>=0 && mapp[ss][s[i][j-1]]) tem[i][j]=s[i][j-1];
30 else if(j+1<m && mapp[ss][s[i][j+1]]) tem[i][j]=s[i][j+1];
31 else tem[i][j]=ss;
32 }
33
34 for(int i=0;i<n;i++)
35 for(int j=0;j<m;j++)
36 s[i][j]=tem[i][j];
37 }
38 int main()
39 {
40 mm['R']=0;mm['S']=1;mm['P']=2;
41 memset(mapp,0,sizeof(mapp));
42 mapp[1][0]=1;mapp[2][1]=1;mapp[0][2]=1;
43 int t,tt=1;
44 char ss[105];
45 cin>>t;
46 while(t--)
47 {
48 if(tt++>1) cout<<endl;
49 cin>>n>>m>>day;
50 for(int i=0;i<n;i++)
51 {
52 cin>>ss;
53 for(int j=0;j<m;j++)
54 {
55 s[i][j]=mm[ss[j]];
56 }
57 }
58
59 for(int i=0;i<day;i++)
60 {
61 solve();
62 }
63
64 for(int i=0;i<n;i++)
65 {
66 for(int j=0;j<m;j++)
67 {
68 if(s[i][j]==0)
69 cout<<'R';
70 else if(s[i][j]==1)
71 cout<<'S';
72 else
73 cout<<'P';
74 }
75 cout<<endl;
76 }
77 }
78 return 0;
79 }
 posted on 2011-05-15 15:04  eth0  阅读(178)  评论(0编辑  收藏  举报