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
123,654,789
(1,3) 就对应(3,3)
如果有这种对应,就输出NO,然后输出两个行号, 两个列号。否则输出YES。
分析:
这题方法类似:http://www.cnblogs.com/Jadon97/p/6877791.html
总结就是先映射, 再操作
将每个字符串映射成一个值。
枚举任意两列,构成一对pair,枚举任意两行是否相等,任意两列组合C(10,2) = 45种 行最多有10000行。
其实这种方法很慢,只是为了练习STL,正常做法会用char数组和hash
代码参考刘汝佳第五章例题
#include <bits/stdc++.h>
const int maxr = + ;
const int maxc = + ;
using namespace std;
typedef pair<int,int> PII;
int n, m, cnt;
int db[maxr][maxc];
map<string, int> id; void debug()//观察dp数组映射的值
{
for(int i = ; i < n; i++)
{
for(int j = ; j < m; j++)
{
cout << db[i][j] <<" ";
}
cout<< "\n";
} }
int ID(const string& s)
{
if(id.count(s))
return id[s];
else return id[s] = ++cnt;
}
void solve()
{
//寻找任意两列,观察任意两行是否相等 任意两列组合45种 行共有10000行 循环45W次
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]);
if(d.count(p))
{
printf("NO\n");
printf("%d %d\n",d[p]+, i+);
printf("%d %d\n",c1+,c2+);
return;
}
d[p] = i;
}
}
}
printf("YES\n");
}
int main()
{
// freopen("1.txt","r",stdin);
string s;
while(getline(cin,s))
{
stringstream ss(s);
if(!(ss >> n >> m)) break;
for(int i = ; i < n; i++)
{
string t;
getline(cin,t);
for(int j = ; j < t.length(); j++)
{
if(t[j] == ',') t[j] = ' ';
else if(t[j] == ' ') t[j] = '$';
}
stringstream st(t);
for(int j = ; j < m; j++)
{
string t1;
st >> t1;
// cout<<t1<<"\n";
db[i][j] = ID(t1);
}
}
// debug();
solve();
}
return ;
}
uva 1592 Database (STL)的更多相关文章
- UVa - 1592 Database(STL,优化)
给一个n行m列的数据库表格,问有没有两个行 r1,r2 和 c1,c2,满足(r1,r2)的元素=(c1,c2)的元素. n≤10000,m≤10. 直接枚举4个肯定会T的.可以只枚举c1 c2,然后 ...
- uva 725 Division(除法)暴力法!
uva 725 Division(除法) A - 暴力求解 Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & ...
- 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)安装后的初步使用(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1) 打开服务(cm ...
- 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的完全卸载(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 若你不想用了,则可安全卸载. 完全卸载Oracle ...
- C++标准模板库(STL)和容器
1.什么是标准模板库(STL)? (1)C++标准模板库与C++标准库的关系 C++标准模板库其实属于C++标准库的一部分,C++标准模板库主要是定义了标准模板的定义与声明,而这些模板主要都是 类模板 ...
- 【常用技巧】标准模板库(STL)
[常用技巧]标准模板库(STL) 在前几个章节中我们已经使用了诸如队列.堆.堆栈.vector 等标准模板库中的模板,切身感受到了它给我们带来的极大便利.在本节中,我们还要介绍两种标准模板——stri ...
- C++ 标准模板库(STL)——容器(Containers)的用法及理解
C++ 标准模板库(STL)中定义了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量(vector).队列(queue).栈(stack).set.map等.这次主要 ...
- Three.js 3D打印数据模型文件(.STL)载入中
3DPrint是现在和未来10年度科技产品的主流之中.广泛的. 对于电子商务类3D打印网站.一个主要功能就是商品3D呈现的方式,那是,3D数据可视化技术. HTML5(WebGL)它可以用于构建3D查 ...
- C++标准模板库(STL)之Vector
在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...
随机推荐
- 自定义View(12)绘制.9图片
代码如下: // 绘制.9图片 void draw9Path(Canvas canvas){ //创建一个ninePatch的对象实例,第一个参数是bitmap.第二个参数是byte[],这里其实要求 ...
- 转【Python】Python-skier游戏[摘自.与孩子一起学编程]
http://www.cnblogs.com/zhaoxd07/p/4914818.html 我遇到的问题 问题1 self.image=pygame.image.load("skier_d ...
- hdu 1695 GCD 欧拉函数 + 容斥
http://acm.hdu.edu.cn/showproblem.php?pid=1695 要求[L1, R1]和[L2, R2]中GCD是K的个数.那么只需要求[L1, R1 / K] 和 [L ...
- Uediter的引用和取值
页面应用Uediter控件,代码如下: <tr> <td align="center" class="xwnr_j"> <asp: ...
- HTML5的音频播放和视频播放
1.音频播放 audio(音频) html5提供了播放音频文件的标准 <audio src="anli.mp3" controls="controls" ...
- Cannot load php5apache2_4.dll into server 问题的解决方法
解决方法,重新安装 VC9或 VC11 试试,或者全部安装VC9 VC11 注意:如果下载的 php5.5为32位版本, 那么安装的vc9或VC11 也必须是32位版本. 如果下 ...
- taskctl的后台字符界面登录不了解决办法
今天在使用taskctl的designer时,十多分钟挂了2次,每次挂了之后就签不出来了,只能等半小时,然后在taskctl的QQ群里咨询了,给的解决方案是 http://www.taskctl.co ...
- 解决qt提示:qt.network.ssl: QSslSocket: cannot call unresolved function DH_free和qt.network.ssl: QSslSocket: cannot call unresolved function d2i_DHparams
转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=7127254 运行环境:VS2015&Qt5.8 方法一(未能解决):把C:\Qt\Q ...
- vuex的应用和解决的实际问题
这是vuex的语法结构内容 简单的理解vuex: new Vue({ // state data () { return { count: 0 } }, // view template: ` < ...
- swift 使用计算属性+结构管理内存
class GooClass { deinit { print("aaaaaaaa") } var str = "gooClass" } struct GooS ...