ZOJ-1279
2014-08-04 22:51
417 查看
蛋疼的模拟题,大致就是模拟加法操作和左移右移操作,注意左移或右移后两个数位数可能不一样了,做加法时要小心,本题V,U,C,D分别可用0,1,2,3表示,然后加法是4进制的,观察那个表格就能得出结论。在一些小坑上错了半天,智商捉鸡啊
#include<iostream> #include<string> #include<algorithm> using namespace std; namespace { string to_num(const string &s) { string t; for (size_t i = 0; i < s.size(); i++) if (s[i] == 'V') t += '0'; else if (s[i] == 'U') t += '1'; else if (s[i] == 'C') t += '2'; else t += '3'; return t; } string to_str(const string &s) { string t; for (size_t i = 0; i < s.size(); i++) if (s[i] == '0') t += 'V'; else if (s[i] == '1') t += 'U'; else if (s[i] == '2') t += 'C'; else t += 'D'; return t; } string add(string &s1, string &s2) { reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); int carry = 0; string res; size_t i = 0; while (i < s1.size() || i < s2.size()) { int a = i < s1.size() ? (s1[i] - '0') : 0; int b = i < s2.size() ? (s2[i] - '0') : 0; int sum = a + b + carry; carry = sum / 4; res += sum % 4 + '0'; i++; } if (carry) res += '1'; reverse(s1.begin(), s1.end()); reverse(s2.begin(), s2.end()); reverse(res.begin(), res.end()); return res; } void shift_right(string &s) { s = '0' + s; s.erase(s.size() - 1, 1); } void shift_left(string &s) { s += '0'; } void append_head(string &s) { while (s.size() < 8) s = '0' + s; } } int main() { int N; cin >> N; cout << "COWCULATIONS OUTPUT" << endl; while (N--) { string s1, s2, t1, t2, op; cin >> s1 >> s2; t1 = to_num(s1); t2 = to_num(s2); for (int i = 0; i < 3; i++) { cin >> op; if (op == "A") t2 = add(t1, t2); else if (op == "R") shift_right(t2); else if (op == "L") shift_left(t2); } cin >> op; append_head(t2); cout << (to_str(t2) == op ? "YES" : "NO") << endl; } cout << "END OF OUTPUT" << endl; return 0; }
相关文章推荐
- zoj 1369 || poj 1279 Art Gallery(半平面交第一题~~嘿嘿~)
- ZOJ 2744 Palindromes
- A Game Between Alice and Bob(zoj 3529)
- ZOJ - 2975 Kinds of Fuwas
- ZOJ 1093 Monkey and Banana(dp)
- zoj2290 Game----博弈 打表找规律
- DLX (精确覆盖) ZOJ 3209 Treasure Map
- zoj 3888 Twelves Monkeys 二分+线段树维护次小值
- ZOJ 1134 Strategic Game(非二分图最小顶点覆盖)
- zoj 2972 Hurdles of 110m
- zoj Fibonacci Numbers ( java , 简单 ,大数)
- zoj 3890 Wumpus(zoj 2015年7月月赛)
- ZOJ 3469 Food Delivery
- zoj 3329 One Person Game(数学期望)
- ZOJ-1589
- ZOJ 1425 Crossed Matchings DP LCS
- zoj 1733(LCS
- zoj 3541 The Last Puzzle
- ZOJ 1151 Word Reversal
- zoj 3735 概率dp