UVa1592 map妙用,简化复杂数据
2018-02-04 20:52
344 查看
采用数据结构与大概流程
1.输入r,c行列两个参数(注意getline之前需要getchar一下)2.读入一行,并分割成c个字符串,为了简化操作,给每个字符串分配一个ID(跟UVa12096一样)
3.从第一列开始,两列两列,一行一行枚举,把两列字符串的值存入
map<int,int>中,如果发现map中已经有对应的二元组则返回不满足,否则继续枚举
主要用map进行每行对比,并把复杂的字符串比较化为数字比较,简化操作
代码实现
#include<iostream> #include<fstream> #include<string> #include<map> #include<vector> using namespace std; map<string, int> savedString; int getID(const string& a) { if (savedString.count(a) == 0) { savedString[a] = savedString.size()+1; } return savedString[a]; } int main() { map<vector<int>, int> result;//c1c2 与行的关系保存 string input; int r, c,c1c2[2]; while (cin >> r>>c) { int flag = 0; result.clear(); savedString.clear(); getchar(); vector<int> saveC1C2[10001]; //输入 将字符串转为数字 for (int i = 1; i <= r; i++) { getline(cin, input); //分割字符串 auto it = input.begin(); for (int j = 0; j < c; j++) { string save[10]; if (j != 0) it++; while (it != input.end() && *it != ',') { save[j].push_back(*it); //cout << save[j] << endl; it++; } saveC1C2[i].push_back(getID(save[j])); } /* for (auto it = saveC1C2[i].begin(); it != saveC1C2[i].end(); it++) cout << *it<<" "; cout << endl; */ } for (int l = 0; l < c; l++) { for (int j = l + 1; j < c; j++) { result.clear(); for (int k = 1; k <= r; k++) { vector<int> saveTwo; saveTwo.push_back(saveC1C2[k][l]); saveTwo.push_back(saveC1C2[k][j]); /*for (auto it = saveTwo.begin(); it != saveTwo.end(); it++) cout << *it << " "; cout << endl;*/ /* cout <<l<<" "<<j<<" " <<k << endl;*/ if (result.count(saveTwo) == 0) result[saveTwo] = k; else { cout << "NO" << endl; //输出行 cout << result[saveTwo] << " " << k << endl; //输出列 cout << l+1 << " " << j+1 << endl; flag = 1; break; } } if (flag == 1) break; } if (flag == 1) break; } if (flag == 0) cout << "YES " << endl; } //system("pause"); return 0; }
相关文章推荐
- Database(map的妙用) - uva 1592
- UVa 1592Database(map的妙用)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- UVA 1592 map用法
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- UVA 1592 Database(map)
- Cxf 复杂数据类型(Map)
- 关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- UVa1592 Database (map)
- Uva1592 Database 【map应用】【例题5-9】
- UVa 1592 STL之map
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
- 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
- Cxf 复杂数据类型(Map)
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- UVA - 1592 Database 枚举+map
- 关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例