UVA
来源:互联网 发布:3dmax的mac 编辑:程序博客网 时间:2024/06/16 05:13
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4467
大衣就是给你一个字符串组成的二位数组,让你找到两组一样的数据,即(r1,c1)==(r1,c2)&&(r2,c1)==(r2,c2);
题目并不难,但是直接对字符串进行查找会大大影响效率,所以,我们应该用map把字符串映射成一个整数,这样就会大大的提高效率。
暴力部分是4000ms过的,利用map进行了优化快速查找效率大大提升
#include<bits/stdc++.h>using namespace std;string str;int ii=0;///表示字符串对应的整数map<string,int> mmp;///构建映射int main() { freopen("1.in","r",stdin); int m,n; mmp.clear(); while(cin>>m>>n) { ///读入字符串并转换为整型 getchar(); int mp[m][n]= {}; for(int i=0; i<m; i++) { int r=0; getline(cin,str); int leng = str.length(); char lis[1000]; int k=0; for(int j=0; j<leng; k++,j++) { if (str[j]!=',') { lis[k]=str[j]; } else { lis[k]='\0'; k=-1; if(mmp.count(lis)) { mp[i][r]=mmp[lis]; } else { mp[i][r]=++ii; mmp.insert(pair<string,int>(lis,ii)); } r++; memset(lis,0,sizeof(lis)); } } lis[k]='\0'; if(mmp.count(lis)) { mp[i][r]=mmp[lis]; r++; } else { mp[i][r]=++ii; r++; mmp.insert(pair<string,int>(lis,ii)); } memset(lis,0,sizeof(lis)); }// for(int i=0; i<m; i++) {// for(int j=0; j<n; j++) {// cout<<mp[i][j]<<" ";// }// cout<<endl;///几乎是暴力遍历// for(int i=0; i<n; i++) {// for(int j=0; j<m; j++) {// for(int k=j+1; k<m; k++) {// if(mp[j][i]==mp[k][i]) {// for(int l=i+1; l<n; l++) {// if(mp[j][l]==mp[k][l]) {// cout<<"NO";// printf("\n%d %d\n%d %d",j+1,k+1,i+1,l+1);// goto endd;// }// }// }// }// }// }///map<pair,int>优化 for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { map<pair<int,int>,int>vis; for(int k=0; k<m; k++) { if(!vis.count(make_pair(mp[k][i],mp[k][j]))) vis[make_pair(mp[k][i],mp[k][j])]=k; else { printf("NO\n%d %d\n%d %d\n",vis[make_pair(mp[k][i],mp[k][j])]+1,k+1,i+1,j+1); goto endd; } } } } cout<<"YES\n";endd: ; } return 0;}
0 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- TextView设置超链接的那些坑
- struts2 提交表单后,不走action中的方法,直接返回input
- 最短路
- GDOI2017模拟4.12总结
- Java设计模式之原型模式
- UVA
- <Linux>u-boot启动Linux内核分析
- POI导入EXCLE过程中的处理日期类型单元格的一些小技巧
- gradlew assembleRelease打包之前的配置
- 动态规划:乘积最大
- 数据库
- 像查询DB一样查询redis
- RobotFramework环境配置二十:数据驱动(Get Sheet Values From Excel)
- Angular2学习资源汇总