#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. 12个Linux进程管理命令介绍

    导读 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作 ...

  2. Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵

    http://blog.csdn.net/janeky/article/details/17272625 今天我们来谈谈关于Unity中的旋转.主要有三种方式.变换矩阵,四元数和欧拉角. 定义 变换矩 ...

  3. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. php使用文件缓存

    使用php读取mysql中的数据很简单,数据量不大的时候,mysql的性能还是不错的.但是有些查询可能比较耗时,这时可以把查询出的结果,缓存起来,减轻mysql的查询压力. 缓存的方法有几种:使用me ...

  5. innerHtml innerText textContent兼容性问题

    innerHtml,innerText,textContentinnerHtml获取元素带标签的内容:innerText只获取元素的文本:火狐不支持innerText,支持textContent: / ...

  6. Java 数据库操作之Dao类

    package Dao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; imp ...

  7. PHP--获取响应头(Response Header)方法

    方法一: $baiduUrl = "http://www.baidu.com/link";   file_get_contents($baiduUrl); $responseInf ...

  8. 9.8---硬币问题(CC150)

    这道题卡了一天.要想AC非常难. 1,第一个解决办法,优化暴力: public class Coins { public static int countWays(int n){ int num25 ...

  9. MySQL查询交集

    MySQL表 CREATE TABLE `viewhistory` (   `viewid` int(11) NOT NULL AUTO_INCREMENT,   `uid` int(11) NOT ...

  10. poj 1035

    http://poj.org/problem?id=1035 poj的一道字符串的水题,不难,但就是细节问题我也wa了几次 题意就是给你一个字典,再给你一些字符,首先如果字典中有这个字符串,则直接输出 ...