// 话说这题太水,但是由于把j写成i,调试了半天,其实那不叫调试啦,print而已,不知道debug真让人伤心啊...


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 }
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 }