UVA1592-Database
来源:互联网 发布:域名加入服务器白名单 编辑:程序博客网 时间:2024/06/07 08:22
这个题开得有点晚,只是因为读不懂题,这个题也提供了一个好思路来优化代码。
首先,把字符串映射到整形,然后相比整形而不是字符串,大大缩短时间。
题意:输出表格中存在的 r1,r2 ,c1,c2使得表格的r1行c1列与r2行c1列相同,r1行c1列与r2行c1列相同。
AC源码:
#include<iostream>#include<string>#include<map>#include<cstdio>using namespace std;int num[10010][15];int m,n;void input(){ map<string, int> mp; int cnt(0); for(int mi=0; mi<m ; mi++){ string s_; getline(cin,s_); int st(0); int en=s_.find(',',0); for(int i =0;i<n;i++){ if(i==n-1){ string s1( s_.begin()+ st , s_.end()); if(mp.count(s1)) num[mi][i]=mp[s1]; else num[mi][i]=(mp[s1]=cnt++); } else{ string s1( s_.begin()+ st , s_.begin()+en); st=en+1; en=s_.find(',',st); if(mp.count(s1)) num[mi][i]=mp[s1]; else num[mi][i]=(mp[s1]=cnt++); } } }}void solve(){ for(int i =0;i<m-1;i++) for(int j=i+1;j<m;j++){ int have=0; int c[2]; for(int k=0;k<n;k++){ if(num[i][k]==num[j][k]){ c[have++]=k; if(have==2){ cout<<"NO"<<endl; cout<<i+1<<" "<<j+1<<endl; cout<<c[0]+1<<" "<<c[1]+1<<endl; return; } } } } cout<<"YES"<<endl;}int main(){ while(cin>>m>>n){cin.get(); input(); solve(); } return 0;}
0 0
- UVA1592 Database
- UVa1592 Database
- UVA1592-Database
- UVA1592 Database
- Database uva1592
- uva1592-Database
- Database,Uva1592
- uva1592 Database
- UVA1592 Database(Map)
- UVa1592 Database (map)
- Database(Uva1592)
- UVA1592 Database 【STL】【思维】
- Uva1592 Database 【map应用】【例题5-9】
- 关于题目“DATAbase, ACM/ICPC NEERC 2009, UVa1592”的一个小问题探讨
- 《算法竞赛入门经典2ndEdition 》例题5-9 数据库(Database, Uva1592)
- Database-UVa1592(如何构建一个二元组作为map的键值)
- 刘汝佳紫书 uva1592
- UVA1592解题报告
- Servlet自学第13讲:使用纯Servlet实现简单登录功能
- ubuntukylin-14.04.2 下下载android4.0.1源码
- 阿里巴巴笼络莆田鞋业,17个品牌淘宝开卖
- Android学习手册——Loaders使用笔记
- 书房台灯风水的相关知识 照亮你的事业
- UVA1592-Database
- SELECT FOR UPDATE
- Searchable(搜索功能)(转)
- Android UI之RelativeLayout(相对布局)
- android人脸识别——HowOld测测你的年龄和性别
- linux Posix线程同步(条件变量) 实例
- 正则表达式
- 结构类型
- Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR