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

【题意】

在这里输入题意

【题解】

枚举不同的列是哪两个列,然后枚举行。
把那一行的这两列的字符接在一起,然后用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. windows 常见环境变量(%AppData%、%TEMP%、%TMP%)

    set 命令查看全部环境变量: %AppData%(应用程序数据).%TEMP%(临时文件夹).%TMP%(临时文件夹) .%LocalAppData%(应用程序本地数据)三个环境变量: C:\Use ...

  2. 3.常用Bracket插件

    转自:https://blog.csdn.net/iso_wsy/article/details/52608205 1.Emmet 如果你从事Web前端开发的话,对该插件一定不会陌生.它可以加快你的 ...

  3. vue的指令在webstrom下报错

    Preferences -> Editor -> Inspections找到XML,把 Unbound XML namespace prefix的勾去掉

  4. less---查看文件

  5. python3 时间处理

    1 标记当前时间 import datetime from dateutil import tz #标记当前时间为中国时间 注意(replace 只有标记的意思没有转化的意思) datetime.da ...

  6. php汉字转化为拼音函数

    <?php function Pinyin($_String, $_Code='gb2312'){ $_DataKey = "a|ai|an|ang|ao|ba|bai|ban|ban ...

  7. 35.Intellij IDEA设置忽略部分类编译错误

    转自:https://www.aliyun.com/jiaocheng/290360.html 有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是 ...

  8. 69.fprintf fscanf

    fprintf //从读文件中提取字符串到info1.user和info1.password中 fscanf(pfr, "%s%s", info1.user, info1.pass ...

  9. chocolatey 的安装与安装过程中的注意事项

    安装的windows需求 Windows 7+ / Windows Server 2003+ PowerShell v2+ .NET Framework 4+   注意:chocolatey的网站可能 ...

  10. C语言的多行宏定义

    一.多行宏定义的使用 最近在跟STM32L011K4T6低功耗的源代码,发现使用了多行的宏定义来封装函数,记得之前把\给删除掉,编译程序就一直报错. \是续行操作符,也就是宏定义一行写不完,需要多行写 ...