【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

枚举不同的列是哪两个列,然后枚举行。
把那一行的这两列的字符接在一起,然后用map判重。
为了防止逐个比较字符。
可以一开始先把字符串转换成一个整数。
这样,每一行就是一个整数的二元组(x,y)了;
用map,int>判重也可以;
或者把它转成long long的数字->x乘一个10W把Y加上去
后者更好。
**关同步的时候,getchar()不能用,可以用cin.get()代替**

【代码】

#include <bits/stdc++.h>
using namespace std; const int N = 1e4;
const int M = 10; map <string, int > dic;
map <long long, int> mmap;
int n, m;
string S[N+10][M+10];
int a[N + 10][M + 10]; bool ok()
{
int tot = 0;
dic.clear();
for (int i = 1;i <= n;i++)
for (int j = 1; j <= m; j++)
{
if (dic[S[i][j]] == 0) dic[S[i][j]] = ++tot;
a[i][j] = dic[S[i][j]];
}
for (int j = 1; j <= m; j++)
for (int k = j + 1; k <= m; k++)
{
mmap.clear();
for (int i = 1; i <= n; i++)
{
long long ts = 1LL * a[i][j] * 100000 + a[i][k];
if (mmap.find(ts) != mmap.end())
{
cout << "NO" << endl;
cout << mmap[ts] << ' ' << i << endl;
cout << j << ' ' << k << endl;
return true;
}
else
mmap[ts] = i;
}
}
return false;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
ios::sync_with_stdio(0), cin.tie(0);
while (cin >> n >> m)
{
cin.get();
for (int i = 1;i <=n;i++)
{
string ss;
getline(cin, ss);
int len = ss.size(),x = 0;
for (int j = 1; j <= m; j++,x++)
{
string s = "";
while (x <= len - 1 && ss[x] != ',')
{
s += ss[x];
x++;
}
S[i][j] = s;
}
}
if (!ok()) cout << "YES" << endl;
}
return 0;
}

【例题5-9 UVA - 1592】Database的更多相关文章

  1. UVa 1592 Database(巧用map)

    Peter studies the theory of relational databases. Table in the relational database consists of value ...

  2. uva 1592 Database (STL)

    题意: 给出n行m列共n*m个字符串,问有没有在不同行r1,r2,有不同列c1,c2相同.即(r1,c1) = (r2,c1);(r1,c2) = (r2,c2); 如 2 3 123,456,789 ...

  3. UVA - 1592 Database 枚举+map

    思路 直接枚举两列,然后枚举每一行用map依次记录每对字符串出现的是否出现过(字符串最好先处理成数字,这样会更快),如果出现就是"NO",否则就是"YES". ...

  4. UVA 1592 DataBase

    思路: 知识补充: ①make_pair和pair: /*pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用 ...

  5. UVa - 1592 Database(STL,优化)

    给一个n行m列的数据库表格,问有没有两个行 r1,r2 和 c1,c2,满足(r1,r2)的元素=(c1,c2)的元素. n≤10000,m≤10. 直接枚举4个肯定会T的.可以只枚举c1 c2,然后 ...

  6. UVa 1592 Database (map)

    题意:给出n行m列的数据库(数据范围: n 1~10000, m 1~10), 问你能不能找出两行r1, r2,使得这两行中的c1, c2列是一样的, 即(r1,c1)==(r2,c1) && ...

  7. Database UVA - 1592

    对于每组数据,首先通过一个map将每个字符串由一个数字代替,相同的字符串由相同数字代替,不同的字符串由不同数字代替.那么题目就变为了询问是否存在行r1,r2以及列c1,c2使得str[r1][c1]= ...

  8. UVa 1592 数据库(c++pair)

    Input Input contains several datasets. The first line of each dataset contains two integer numbersn  ...

  9. UVa第五章STL应用 习题((解题报告))具体!

    例题5--9 数据库 Database UVa 1592 #include<iostream> #include<stdio.h> #include<string.h&g ...

随机推荐

  1. 深入理解Android(1)——理解Android中的JNI(上)

    我参加了CSDN博客之星评选,如果在过去的一段时间里阳光小强的博客对你有所帮助,在这里希望能投上您宝贵的一票,每天都可以投一次:http://vote.blog.csdn.net/blogstar20 ...

  2. jquery实现瀑布流效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. CentOS7 NFS配置

    如果在安装Centos7时选择安装必要的开发工具选项,所以系统已经安好NFS必要的软件. 配置: # vi /etc/exports /home/qws/share 192.168.168.0/24 ...

  4. 记录一个mybatis编写xml遇到的错误:java.lang.unsupportedOperationException

    写完xml里的sql在执行xml中的sql时报错,经过排查找到问题出在方法中的resultType这个属性的类型上 如图所示:只需要将sortedSet改为set集合里所存储的对象的类型即可. 这里我 ...

  5. JavaScript--数据结构与算法之集合

    集合(Set):是一种包含不同元素的数据结构. 重要特性:1.集合中的成员时无序的:2.集合中不允许相同的成员存在. 使用场景:用于存储一些独一无二的元素. 1 集合的定义:(和高中数学中的集合一样) ...

  6. 多行文本溢出显示...的方法(-webkit-line-clamp)

    限制在一个块元素显示的文本的行数. -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. 为了实现该 ...

  7. python爬虫之『入门基础』

    HTTP请求 1.首先需要了解一下http请求,当用户在地址栏中输入网址,发送网络请求的过程是什么? 可以参考我之前学习的时候转载的一篇文章一次完整的HTTP事务过程–超详细 2.还需要了解一下htt ...

  8. 003 python 注释/数据类型/运算符/输入输出/格式化输出

    集成开发环境 pycharm 工欲善其事,必先利其器 pycharm是具备一般的python ide的功能,同时呢支持调试,语法高亮,代码管理,智能提示 加快快发的速度,提高开发效率 注释 what ...

  9. dp之多重背包(未用二进制优化)

    hdu 2191: #include <iostream>#include <stdio.h>#include <string.h>using namespace ...

  10. C++里面virtual函数及虚表大小

    实验了下面的函数: #include <vector> #include <iostream> using namespace std; class A { public: v ...