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

【题意】

在这里输入题意

【题解】

枚举不同的列是哪两个列,然后枚举行。
把那一行的这两列的字符接在一起,然后用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. 洛谷P2115 [USACO14MAR]破坏Sabotage

    题目描述 Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's milking equipmen ...

  2. ocdefirst安装更新数据库

    数据迁移(Migrations) 启用数据迁移在控制台中输入如下命令:Enable-Migrations 这时会在项目目录中增加一个Migrations文件夹,里面放置了两个文件:EF会通过C#代码的 ...

  3. tcp为什么要三次握手

    作者:大闲人柴毛毛链接:https://www.zhihu.com/question/24853633/answer/254224088来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  4. css相关用法

    1. 2. 3.offset([coordinates]) 获取匹配元素在当前视口的相对偏移. 返回的对象包含两个整型属性:top 和 left,以像素计.此方法只对可见元素有效. a.获取当前元素的 ...

  5. Python day3 知识总结

    if salary.isdigit(): salary = int(salary)判断输入的salary是否是一个整数是否成立 for index,item in enumerate(product_ ...

  6. 自己定义控件的onMeasure方法具体解释

    在我们自己定义控件的时候可能你会用到onMeasure方法,以下就具体的给大家介绍一下这种方法: @Override protected void onMeasure(int widthMeasure ...

  7. 亚马逊AWS的route53的收费,月费最低 0.9 USD

    亚马逊AWS的route53的收费Amazon Route 53 定价 https://aws.amazon.com/cn/route53/pricing/ 一文中,对于一些术语的解释第一项收费--域 ...

  8. Red Hat Enterprise Linux Server 5.5新增功能简介

    一.概况 昨日对刚发布的redhat新产品RHEL5.5进行了小范围的测试,红帽企业版 Linux 5.5 发行本中的亮点包括针对 Intel Boxboro-EX 平台.AMD Magny-Cour ...

  9. 图片拖拽缩放功能:兼容Chrome、Firefox、IE8+

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

  10. 【习题 7-10 Uva11214】Guarding the Chessboard

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 迭代加深搜索. 可以想见最后深度不会很深吧.. 然后皇后之间互相攻击到是允许的.. 就这样 [代码] /* 1.Shoud it u ...