Problem A Inna and Choose Options
题意:水题
代码如下:
1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao/ 4 * Last modified : 2014-03-05 23:13 5 * Filename : Codeforce_234_2_A.cpp 6 * Description : 7 * ************************************************/ 8 9 #include <iostream> 10 #include <cstdio> 11 #include <cstring> 12 #include <cstdlib> 13 #include <cmath> 14 #include <algorithm> 15 #include <queue> 16 #include <stack> 17 #include <vector> 18 #include <set> 19 #include <map> 20 #define MP(a, b) make_pair(a, b) 21 #define PB(a) push_back(a) 22 23 using namespace std; 24 typedef long long ll; 25 typedef pair<int, int> pii; 26 typedef pair<unsigned int,unsigned int> puu; 27 typedef pair<int, double> pid; 28 typedef pair<ll, int> pli; 29 typedef pair<int, ll> pil; 30 31 const int INF = 0x3f3f3f3f; 32 const double eps = 1E-6; 33 int mp[20][20]; 34 vector<pii> p; 35 string str; 36 37 void debug(int a, int b){ 38 for(int i=0; i<a; i++){ 39 for(int j=0; j<b; j++){ 40 cout << mp[i][j] << ‘ ‘; 41 }cout << endl; 42 }cout << endl; 43 } 44 45 bool calc(int a, int b){ 46 for(int i=0; i<a; i++){ 47 for(int j=0; j<b; j++){ 48 if(str[i*b+j] == ‘X‘) mp[i][j] = 1; 49 else mp[i][j] = 0; 50 } 51 } 52 for(int i=0; i<b; i++){ 53 int f = 1; 54 for(int j=0; j<a; j++){ 55 if(mp[j][i] == 0){ 56 f = 0; 57 break; 58 } 59 } 60 if(f) return true; 61 } 62 return false; 63 } 64 65 int main() 66 { 67 // freopen("in.txt", "r", stdin); 68 69 int t; 70 cin >> t; 71 while(t--){ 72 cin >> str; 73 int ans = 0; 74 p.clear(); 75 for(int i=1; i<=12; i++){ 76 for(int j=1; j<=12; j++){ 77 if(i*j==12){ 78 if(calc(i, j)) { 79 p.PB(MP(i, j)); 80 ans++; 81 } 82 } 83 } 84 } 85 cout << ans; 86 for(int i=0; i<ans; i++){ 87 cout << ‘ ‘ << p[i].first << ‘x‘ << p[i].second; 88 } 89 cout << endl; 90 } 91 return 0; 92 }
Problem B Inna and New Matrix of
Candies
思路:每次找一个最小的然后全部向右移动,计算次数。
代码如下:
1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao/ 4 * Last modified : 2014-03-05 23:15 5 * Filename : Codeforce_234_2_B.cpp 6 * Description : 7 * ************************************************/ 8 9 #include <iostream> 10 #include <cstdio> 11 #include <cstring> 12 #include <cstdlib> 13 #include <cmath> 14 #include <algorithm> 15 #include <queue> 16 #include <stack> 17 #include <vector> 18 #include <set> 19 #include <map> 20 #define MP(a, b) make_pair(a, b) 21 #define PB(a) push_back(a) 22 23 using namespace std; 24 typedef long long ll; 25 typedef pair<int, int> pii; 26 typedef pair<unsigned int,unsigned int> puu; 27 typedef pair<int, double> pid; 28 typedef pair<ll, int> pli; 29 typedef pair<int, ll> pil; 30 31 const int INF = 0x3f3f3f3f; 32 const double eps = 1E-6; 33 const int LEN = 1010; 34 int Map[LEN][LEN], n, m; 35 vector<int> p; 36 37 int main() 38 { 39 // freopen("in.txt", "r", stdin); 40 41 string str; 42 int ans = 1, pos; 43 while(cin >> n >> m){ 44 ans = 1; 45 p.clear(); 46 for(int i=0; i<n; i++){ 47 cin >> str; 48 pos = -1; 49 for(int j=0; j<m; j++){ 50 if(str[j] == ‘G‘) pos = j; 51 if(pos == -1 && str[j] == ‘S‘) ans = 0; 52 if(str[j] == ‘S‘) p.PB(j-pos); 53 } 54 } 55 sort(p.begin(), p.end()); 56 // for(int i=0; i<p.size(); i++)cout << p[i] << ‘ ‘;cout << endl; 57 int cnt = 0; 58 for(int i=0; i<p.size(); i++){ 59 if(p[i] == 0) continue; 60 cnt ++; 61 for(int j=p.size()-1; j>i; j--){ 62 p[j] -= p[i]; 63 } 64 } 65 if(ans) cout << cnt; 66 else cout << "-1"; 67 cout << endl; 68 } 69 return 0; 70 }
Problem C Inna and Huge Candy Matrix
题意:一个矩阵中有糖果,告诉你糖果的位置,然后先顺时针转90度x次,镜像y次,逆时针90度z次问你糖果的位置。
思路:直接模拟,注意每次旋转交换n和m
代码如下:
1 /************************************************** 2 * Author : xiaohao Z 3 * Blog : http://www.cnblogs.com/shu-xiaohao/ 4 * Last modified : 2014-03-05 23:14 5 * Filename : Codeforce_234_2_C.cpp 6 * Description : 7 * ************************************************/ 8 9 #include <iostream> 10 #include <cstdio> 11 #include <cstring> 12 #include <cstdlib> 13 #include <cmath> 14 #include <algorithm> 15 #include <queue> 16 #include <stack> 17 #include <vector> 18 #include <set> 19 #include <map> 20 #define MP(a, b) make_pair(a, b) 21 #define PB(a) push_back(a) 22 23 using namespace std; 24 typedef long long ll; 25 typedef pair<int, int> pii; 26 typedef pair<unsigned int,unsigned int> puu; 27 typedef pair<int, double> pid; 28 typedef pair<ll, int> pli; 29 typedef pair<int, ll> pil; 30 31 const int INF = 0x3f3f3f3f; 32 const double eps = 1E-6; 33 int n, m, x, y, z, p, a, b; 34 35 pii ca(pii t, int x){ 36 pii ret; 37 while(x--){ 38 ret = t; 39 ret.first = t.second; 40 ret.second = n - t.first + 1; 41 t = ret; 42 swap(n, m); 43 } 44 return t; 45 } 46 47 pii cb(pii t, int x){ 48 pii ret = t; 49 while(x--){ 50 ret = t; 51 ret.second = m - t.second + 1; 52 } 53 return ret; 54 } 55 56 pii cc(pii t, int x){ 57 pii ret; 58 while(x--){ 59 ret = t; 60 ret.second = t.first; 61 ret.first = m - t.second + 1; 62 t = ret; 63 swap(n, m); 64 } 65 return t; 66 } 67 68 int main() 69 { 70 // freopen("in.txt", "r", stdin); 71 72 pii sw; 73 int tn, tm; 74 while(cin >> tn >> tm >> x >> y >> z >> p){ 75 for(int i=0; i<p; i++){ 76 cin >> a >> b; 77 n = tn, m = tm; 78 sw = MP(a, b); 79 sw = ca(sw, x%4); 80 sw = cb(sw, y%2); 81 sw = cc(sw, z%4); 82 cout << sw.first << ‘ ‘ << sw.second << endl; 83 } 84 } 85 return 0; 86 }
Codeforces Round #234 (Div. 2) 解题报告,布布扣,bubuko.com
Codeforces Round #234 (Div. 2) 解题报告
原文:http://www.cnblogs.com/shu-xiaohao/p/3583723.html