UVa 1592 Database ACM解题报告(map和pair的使用)
来源:互联网 发布:ubuntu owncloud 编辑:程序博客网 时间:2024/04/30 02:48
算法竞赛入门经典紫书P128 这题真是巧妙,用pair可以大幅的减少运行时间,我也学习了一发,虽然我不是怎么会做,自己写了一遍也差不多掌握了,重要的是解题的思想。
各种初始化和对字符串的处理也是难点,用map将每个字符串化成数字,然后用pair寻找 满足条件的。
#include<iostream>#include<cstdio>#include<cctype>#include<cstdlib>#include<cmath>#include<algorithm>#include<cstring>#include<string>#include<vector>#include<queue>#include<map>#include<set>#include<sstream>#include<stack>using namespace std;#define MAX 105typedef long long LL;const double pi=3.141592653589793;const int INF=1e9;const double inf=1e20;map<string,int> data;map<pair<int,int>,int> data1;int a[10005][11];int main(){ int n,m; string s,s0; while(cin>>n>>m) { int t=0; getchar(); for(int i=0; i<n; i++) { getline(cin,s); string x; int xcount=0; for(int j=0; j<s.size(); j++) { if(s[j]!=',') x+=s[j]; if(s[j]==','||j==s.size()-1) { if(!data.count(x)) { data[x]=t; t++; } a[i][xcount++]=data[x]; x=s0;//初始化 } } } int flag=0; for(int i=0;i<m-1;i++)//枚举列复杂度低 { for(int j=i+1;j<m;j++) { for(int k=0;k<n;k++) { int x=a[k][i]; int y=a[k][j]; if(data1.count(make_pair(x,y)))//把x,y看成一个元素,可以少枚举一行 { printf("NO\n%d %d\n%d %d\n",data1[make_pair(x,y)]+1,k+1,i+1,j+1); flag=1; break; } data1[make_pair(x,y)]=k; } data1.clear(); if(flag) break; } if(flag) break; } if(!flag) printf("YES\n"); data.clear(); data1.clear(); } return 0;}
0 0
- UVa 1592 Database ACM解题报告(map和pair的使用)
- UVA - 1592 Database map+pair
- UVa 1592 - Database(pair+预处理)
- UVa156 Ananagrams ACM解题报告(巧妙的map)
- Database(map的妙用) - uva 1592
- map和pair的配合使用
- 【数据结构】map和pair的配合使用
- UVA 1592 Database(map)
- Uva 11825 Hackers' Crackdown ACM解题报告(状压dp)
- *UVA 10859 Placing Lampposts ACM解题报告(dp)
- UVa 1099 分巧克力 ACM解题报告(状压dp)
- UVa 1592Database(map的妙用)
- map与pair的使用
- C++:map容器和pair的结合使用
- ***UVa-1626 Brackets sequence ACM解题报告(巧妙地递推+打印)经典的括号 dp题
- STL之关联容器(pair、map、set的使用)
- STL之关联容器(pair、map、set的使用)
- 关联容器-map与pair的使用(续)
- java 操作 vsftp 文件
- 什么是哈希码?
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- initrd.img中的init脚本分析,load_modules()分析
- 【设计模式学习笔记十二】【结构型模式】【享元模式(FlyWeight)】
- UVa 1592 Database ACM解题报告(map和pair的使用)
- APP将会灭亡?
- 每一个程序员需要了解的10个Linux命令
- 定义集合enum时出错
- 21分钟 MySQL 入门教程
- PHP入门基础学习篇(五)
- 计算2对经纬度距离的方法
- 非arc工程导入arc库文件与arc工程导入非arc库文件
- android中RadioGroup、RadioButton、Spinner、EditText用法详解(含示例截图和源代码)