紫书章五例题9 数据库 UVA 1592 (map+vector)
来源:互联网 发布:淘宝碰到专业差评师 编辑:程序博客网 时间:2024/04/26 21:56
题意:判断是否有两行有相同的两列。
然后刚拿到这道题的时候想放到哪里呢?
然后这里是放到map里面,然后每一个相同的部分会对应一个常数,但是在不同列可能也有相同的部分呀?所以我们定义了一个map M[maxn],对每一列进行对应。然后我们vector 存的是对应的部分所对应的数字。我们最后进行扫描的对列进行枚举,然后从上往下判断。因为v里面存的就是行号嘛。
但是其中会总是WA,因为还有这样的一种情况
3 3
1 2 5
1 4 3
1 5 3
这个时候a=v[2][0]=0,b=v[2][2]=1,他们的行号不相同,那怎么办?我们判断一下,v[b][0]是否为a就好啦
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <vector>#include <map>using namespace std;#define maxn 10005vector<int > v[maxn];map <string, int > M[10];string str;int h=0,n,m;;int id(string g,int k){ if(M[k].count(g)!=0) {return M[k][g];} M[k][g]=h; // cout<<M[k][g]<<endl; return M[k][g];}void read(){ char c; str.clear(); int k=0; for(;;) { c=getchar(); if(k==m) break; if(c=='\n'||c=='\r') { if(!str.empty()) v[h].push_back(id(str,k)); str.clear(); break; } else { if(c==','){ v[h].push_back(id(str,k)); k++; str.clear(); } else str+=c; } }}void solve(){ int flag=0; for(int i=0;i<m;i++) { for(int j=i+1;j<m;j++) { for(int k=0;k<n;k++){ int a=v[k][i]; int b=v[k][j]; if(a<b) {//判断 if(v[b][i]==a) a=b; } else if(a>b) { if(b==v[a][j]) b=a;} if(a!=k&&b!=k&&a==b) { flag=1; printf("NO\n"); printf("%d %d\n",a+1,k+1); printf("%d %d\n",i+1,j+1); break; } } if(flag) break; } if(flag) break; } if(!flag) printf("YES\n");}int main(){ // freopen("E:\\input.txt","r",stdin); while(scanf("%d %d",&n,&m)!=EOF) { getchar(); for(int i=0;i<10;i++) M[i].clear(); for(int i=0;i<maxn;i++) v[i].clear(); for(h=0;h<n;h++) read(); solve(); } return 0;}
然后看到紫书上说的是将两列的信息作为一个二元组放到map里。
0 0
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- uva 12096 例题5-5 map vector set stack 混用
- 例题5-9 UVA 1592 Database数据库
- UVa #1592 Database (例题5-9)
- map容器和vector的结合使用(UVA 11991)
- 【UVA】12504 - Updating a Dictionary(map,string,vector模拟)
- 例题5-4 UVA 156 Ananagrams反片语(映射map)
- 紫书动规 例题9-9 UVA
- 例题9-1 UVa 1025
- 紫书动规 例题9-1 UVA
- 紫书动规 例题9-2 UVA
- 紫书动规 例题9-3 UVA
- 紫书动规 例题9-4 UVA
- 紫书动规 例题9-5 UVA
- 紫书动规 例题9-6 UVA
- 紫书动规 例题9-7 UVA
- 紫书动规 例题9-8 UVA
- 紫书动规 例题9-10 UVA
- python之string.maketrans和str.translate
- Bzoj1901 Zju2112 Dynamic Rankings
- Lua函数库中的常用字符串处理函数详解
- zuoye
- 单例模式有五种写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- 数据库理论之故障恢复日志
- web.xml is missing and <failOnMissingWebXml> is set to true问题处理
- 矩阵乘法
- 我的第一篇博客
- 迷宫问题 DFS写法 BFS写法
- solver.prototxt含义及配置
- [图像处理] 高斯模糊的C++实现(Gaussian Blur)
- 异常:前端发送几次请求后,浏览器一直等待localhost响应