Database UVA - 1592
2018-03-20 17:49
295 查看
点击打开链接#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
#define bug(x) printf("%d****\n",x)
using namespace std;
const int maxn=1e4+10;
vector<string> id_vec;
map<string,int> id_mp;
vector<int> tex[maxn];
struct node{
int a,b;
node(int x,int y):a(x),b(y){};
bool operator<(const node& t)const{
if(a==t.a) return b<t.b;
return a<t.a;
}
};
map<node,int> is_exist;
int ID(string s){//最六的操作,利用map记录和vector的存储,简直神操作
if(id_mp.count(s)) return id_mp[s];
id_vec.push_back(s);
return id_mp[s]=id_vec.size()-1;
}
void read(int n,int m){
string str;
char ch;
ch=getchar();//去掉第一行的一个回车符
for(int i=0;i<n;i++){
for(;;){
ch=getchar();
if(ch=='\n'||ch=='\r'){
if(!str.empty()) tex[i].push_back(ID(str));
str.clear();break;
}
if(ch!=',')
str+=ch;
else{
tex[i].push_back(ID(str));
str.clear();
}
}
}
}
void solve(int n,int m){
for(int c1=0;c1<m;c1++){
for(int c2=c1+1;c2<m;c2++){
is_exist.clear();
for(int i=0;i<n;i++){
int a=tex[i][c1],b=tex[i][c2];
node pr(a,b);
if(is_exist.count(pr)){
cout<<"NO"<<endl;
int r1=is_exist[pr]+1,r2=i+1;
cout<<r1<<" "<<
4000
;r2<<endl;
cout<<c1+1<<" "<<c2+1<<endl;
return;
}
else
is_exist[pr]=i;//就算是0,也没有关系
}
}
}
cout<<"YES"<<endl;
}
int main(){
int n,m;
while(cin>>n>>m){
read(n,m);
solve(n,m);
id_vec.clear();
id_mp.clear();
is_exist.clear();
for(int i=0;i<n;i++)
tex[i].clear();
}
}
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
#define bug(x) printf("%d****\n",x)
using namespace std;
const int maxn=1e4+10;
vector<string> id_vec;
map<string,int> id_mp;
vector<int> tex[maxn];
struct node{
int a,b;
node(int x,int y):a(x),b(y){};
bool operator<(const node& t)const{
if(a==t.a) return b<t.b;
return a<t.a;
}
};
map<node,int> is_exist;
int ID(string s){//最六的操作,利用map记录和vector的存储,简直神操作
if(id_mp.count(s)) return id_mp[s];
id_vec.push_back(s);
return id_mp[s]=id_vec.size()-1;
}
void read(int n,int m){
string str;
char ch;
ch=getchar();//去掉第一行的一个回车符
for(int i=0;i<n;i++){
for(;;){
ch=getchar();
if(ch=='\n'||ch=='\r'){
if(!str.empty()) tex[i].push_back(ID(str));
str.clear();break;
}
if(ch!=',')
str+=ch;
else{
tex[i].push_back(ID(str));
str.clear();
}
}
}
}
void solve(int n,int m){
for(int c1=0;c1<m;c1++){
for(int c2=c1+1;c2<m;c2++){
is_exist.clear();
for(int i=0;i<n;i++){
int a=tex[i][c1],b=tex[i][c2];
node pr(a,b);
if(is_exist.count(pr)){
cout<<"NO"<<endl;
int r1=is_exist[pr]+1,r2=i+1;
cout<<r1<<" "<<
4000
;r2<<endl;
cout<<c1+1<<" "<<c2+1<<endl;
return;
}
else
is_exist[pr]=i;//就算是0,也没有关系
}
}
}
cout<<"YES"<<endl;
}
int main(){
int n,m;
while(cin>>n>>m){
read(n,m);
solve(n,m);
id_vec.clear();
id_mp.clear();
is_exist.clear();
for(int i=0;i<n;i++)
tex[i].clear();
}
}
相关文章推荐
- Uva1592 Database 【map应用】【例题5-9】
- Database-UVa1592(如何构建一个二元组作为map的键值)
- uva-1592 Database[STL应用]
- Database UVa1592
- UVa_1592 - Database
- UVA 1592 Database
- Database UVa1592
- uva1592-Database
- Database UVA 1592数据库
- 算法竞赛入门经典第五章例题5-9 Database UVA - 1592
- UVA - 1592 Database map+pair
- UVa 1592 Database
- Database(map的妙用) - uva 1592
- 【例题5-9 UVA - 1592】Database
- UVA 1592 Database 好久没写手生了。。。。。犯了一个很简单的错误呀!
- Database(Uva1592)
- Problem 036——UVa 1592 - Database
- uva1592 Database
- UVA-1592 Database
- UVA1592 Database 【STL】【思维】