UVA - 1592 Database map+pair
来源:互联网 发布:java调用js 返回值 编辑:程序博客网 时间:2024/05/16 15:17
题目大意:给出一个n行m列的数据库数据,找出是否存在不同行r1,r2和两个不同列c1,c2使得这两行两列相同
解题思路:STL的应用,用pair将一行的两列合并成一个数,然后在用map映射,看是否存在
#include<cstdio>#include<cstring>#include<map>#include<string>using namespace std;#define maxn 10010char str[maxn];int arr[maxn][15];typedef pair<int,int> Pair;map<string,int> ID;map<Pair,int> M;int main() { int n, m; while(scanf("%d%d", &n, &m) == 2) { getchar(); memset(arr,0,sizeof(arr)); ID.clear(); M.clear(); int cnt = 0; for(int row = 0; row < n; row++) { gets(str); int len = strlen(str), col = 0; string tmp; for(int i = 0; i < len; i++) { if(str[i] != ',') tmp += str[i]; if(str[i] == ',' || i == len - 1) { if(!ID.count(tmp)) ID[tmp] = cnt++; arr[row][col++] = ID[tmp]; tmp.clear(); } } } bool flag = false; for(int i = 0; i < m; i++) { if(flag) break; for(int j = i + 1; j < m; j++) { if(flag) break; for(int k = 0; k < n; k++) { int x = arr[k][i], y = arr[k][j]; if(M.count(Pair(x,y))) { printf("NO\n"); printf("%d %d\n", M[Pair(x,y)] + 1, k + 1); printf("%d %d\n", i + 1, j + 1); flag = true; break; } M[Pair(x,y)] = k; } M.clear(); } } if(!flag) printf("YES\n"); } return 0;}
0 0
- UVA - 1592 Database map+pair
- UVa 1592 Database ACM解题报告(map和pair的使用)
- UVA 1592 Database(map)
- UVa 1592 - Database(pair+预处理)
- Database(map的妙用) - uva 1592
- UVa 1592Database(map的妙用)
- UVA 10763 Foreign Exchange 出国交换 pair+map
- UVA - 1592 Database
- UVa 1592 - Database
- UVa 1592 Database
- UVA 1592(p128)----Database
- UVA 1592 Database
- UVa 1592 Database
- Database UVA 1592数据库
- Uva 1592 Database
- uva 1592Database
- Database, UVa 1592
- UVa 1592 Database
- jdk1.6的版本与下载地址
- eclipse下用xfire开发web service
- Junit 4 和 TestNG对比
- Html5 缓存策略简介
- 打擂台算法
- UVA - 1592 Database map+pair
- Java求字符串数组交集 并集 差集 去重复并集
- TIPTOP ERP 常用SQL总结
- UVa536 Tree Recovery
- quick cocos2dx学习记录
- 大巧不工Web前端设计修炼之道——(8)浅谈Web发展的未来
- Android在onCreate()中获得控件尺寸
- Redis和Memcache的区别分析
- C++学习1--强制类型转换符