[POJ_1002]487-3279
2011-08-23 13:51
302 查看
#include <iostream> #include <set> #include <map> using namespace std; class bnode { public: bnode() { left = right = 0; val = -1; cnt = 2; } public: int val; int cnt; }; class btree { public: bnode* root; btree() { root = 0; } void insert(int val) { if (root == NULL) { root = new bnode(); root->val = val; } else { insert_to(root, val); } } void insert_to(bnode* node, int val) { if (val < node->val) { if (node->left == 0) { node->left = new bnode(); node->left->val = val; } else { insert_to(node->left, val); } } else if (val > node->val) { if (node->right == 0) { node->right = new bnode(); node->right->val = val; } else { insert_to(node->right, val); } } else { node->cnt++; } } void output() { if (root == 0) { cout << "No duplicates." << endl; } else { cout.fill('0'); traverse(root); } } void traverse(bnode* node) { if (node == 0) return ; traverse(node->left); cout.width(3); cout << node->val / 10000 << "-"; cout.width(4); cout << node->val % 10000 << " " << node->cnt << endl; traverse(node->right); } }; int ref_table[128]; btree elems; set<int> track; void init_table() { for (int i='0'; i<='9'; i++) { ref_table[i] = i - '0'; } char trans[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'}; for (int i=0; i<8; i++) { int val = i + 2; ref_table[trans[i*3+0]] = val; ref_table[trans[i*3+1]] = val; ref_table[trans[i*3+2]] = val; } } int s2i(char* str) { int len = strlen(str); int sum = 0; int base = 1; int digit = 0; for (int i=len-1; i>=0; i--) { if (str[i] == '-') { //skip continue; } else { digit = ref_table[str[i]]; sum += digit * base; base *= 10; } } return sum; } int main() { int size; cin >> size; char buffer[256]; init_table(); for (int i=0; i<size; i++) { cin >> buffer; int tel = s2i(&buffer[0]); set<int>::iterator iter = track.find(tel); if (iter == track.end()) { track.insert(tel); } else { elems.insert(tel); } } elems.output(); return 1; }
相关文章推荐
- poj1002 487-3279
- [POJ]1002 487-3279
- POJ 1002 487-3279
- POJ--1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279(map映照容器的使用)
- POJ 1002 解题报告 487-3279
- POJ 1002 487-3279
- OpenJudge / POJ 1002 487-3279 解题报告 C++
- POJ1002 487-3279(map映射)
- poj 1002 487-3279
- 北大poj-1002题-487-3279
- poj 1002--487-3279
- POJ 1002 487-3279 map +暴力
- poj每日一题之1002(487-3279)
- POJ 1002 487-3279
- POJ 1002 487-3279
- POJ——1002 487-3279
- poj 1002-487-3279
- POJ 1002求487-3279解题报告——【PKU ACM】