#include<iostream>
#include<cstdio>
#include<vector>
#include<utility>
#include<map>
#include<sstream>
#include<string>
using namespace std; typedef pair<int, int> PII; const int maxr = + ;
const int maxc = + ; int m, n, db[maxr][maxc], cnt; //m为当前的行数,n为当前列数,db储存所有的id值,cnt形成id map<string, int> id; //将先将字符串映射成id值
int ID(const string& s) //本题重要思想!转换成id值
{
if (! id.count(s)) //如果字符串s的数目为0
{
id[s] = ++cnt; //形成id值
}
return id[s]; //否则直接返回对应的id值
} //相邻两列情况下 枚举每行
void find()
{
for (int c1 = ; c1 < m; c1++)
{
for (int c2 = c1+; c2 < m; c2++) //相邻两列向每行枚举
{
map<PII, int> d; //将二元组映射成行数
for (int i = ; i < n; i++) //枚举每行
{
PII p = make_pair(db[i][c1], db[i][c2]);//两列的id值形成一个二元组
//make_pair()能从两个变量构造一个pair形成一个二元组
if (d.count(p)) { //二元组出现的次数不止一次
cout << "No\n";
cout << d[p] + << ' ' << i+ << endl; //打印行(2行)
cout << c1 + << ' ' << c2+ << endl; //打印两列
return;
}
d[p] = i; //否则将该行(key)映射到相应的二元组中去
}
}
cout << "YES\n" << endl;
}
} int main()
{
string s;
while (getline(cin, s))
{
stringstream ss(s);
if (! (ss >> n >> m)) //行列输入错误,break;
break;
cnt = ; //每组数据形成id的值初始化为0
id.clear(); //每次都清空数据
for (int i = ; i < n; i++) {
getline(cin, s); //输入一行字符串,每列用 “,”隔开
int lastpos = -;
for (int j = ; j < m; j++) {
int p = s.find(',', lastpos + ); //从lastpos+1开始,寻找在','
//在字符串第一次出现的位置--相当于每列结束
if (p == string::npos) //最后一列之后没有逗号
p = s.length();
//将一列的开始到该列结束位置的字符串形成id值储存在db中
db[i][j] = ID(s.substr(lastpos+, p-lastpos-));
lastpos = p; //将本列字符串最后的位置置为lastpos,等下一次开始位置即为下一列
}
}
find();
}
return ;
}

UVa1592_数据库的更多相关文章

  1. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

  2. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  3. GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级

    一.使用Raw文件夹下的数据库文件 在使用GreenDao框架时,数据库和数据表都是根据生成的框架代码来自动创建的,从生成的DaoMaster中的OpenHelper类可以看出: public sta ...

  4. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  5. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  6. 在SQL2008查找某数据库中的列是否存在某个值

    在SQL2008查找某数据库中的列是否存在某个值 --SQL2008查找某数据库中的列是否存在某个值 create proc spFind_Column_In_DB ( @type int,--类型: ...

  7. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  8. SQL Server2014 SP2新增的数据库克隆功能

    SQL Server2014 SP2新增的数据库克隆功能 创建测试库 --创建测试数据库 create database testtest use testtest go --创建表 )) --插入数 ...

  9. 数据库优化案例——————某市中心医院HIS系统

    记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...

随机推荐

  1. 【C语言入门教程】4.7 指针的地址分配 - mallocl(), free()

    指针变量可指向任何类型的变量,在处理过程中,指针变量指向的变量通过传递变量的地址来实现,指针变量的取值是内存的地址,这个地址应当是安全的,不可以是随意的.否则,写入内存单元的值将使得已存放的数据或程序 ...

  2. OpenCV imread读取图片,imshow展示图片,出现cv:Exception at memory location异常

    问题如上.环境:VS2013. 代码如下: #include "stdafx.h" #include "opencv2\opencv.hpp" using na ...

  3. Makefile 编译生成多个可执行文件

    CC = gcc CXX = g++ CFLAGS = -O -DDBG -D_REENTRANT -Wall -DUSE_PTHREAD -pthread LDFLAGS = -ldl -lnsl ...

  4. php 正则表达式的使用

    要点:php正则表达式要用双引号,且要用“/ /”斜线做开始结束. 1.preg_match . preg_match_all 两者的区别:第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜 ...

  5. MFC关闭子窗口 如何把父窗口也一起关闭

    在子窗口OnClose() 消息里添加: GetParent()->DestroyWindow();//子窗口关闭 父窗口也同样关闭

  6. [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据

    目录 概述 从控制器访问模型中的数据 强类型模型与@model关键字 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net M ...

  7. BZOJ3172——[Tjoi2013]单词

    1. 题目大意:一篇论文是由许多单词组成,现在想知道每个单词分别在论文中出现多少次. 2.分析:对着 广义后缀自动机的图看,我们就会发现玄机,答案不就是这个单词下的后缀个数吗? 于是建立自动机,然后求 ...

  8. [KOJ95603]全球奥运

    [COJ95603]全球奥运 试题描述 一个环形的图中有N个城市,奥运会重要项目就是传递圣火,每个城市有A[i]个圣火,每个城市可以向它相邻的城市传递圣火(其中1号城市可以传递圣火到N号城市或2号城市 ...

  9. Android中的“再按一次返回键退出程序”实现

    用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dial ...

  10. 【GoLang】转载:我为什么放弃Go语言,哈哈

    我为什么放弃Go语言 作者:庄晓立(Liigo) 日期:2014年3月 原创链接:http://blog.csdn.NET/liigo/article/details/23699459 转载请注明出处 ...