例题5-9 UVA 1592 Database数据库
来源:互联网 发布:心动网络密保中心 编辑:程序博客网 时间:2024/05/08 10:47
本来很简单的一道题,却一直RE,查了很长时间才发现是Vector数组开小了,(我日1)
我的思路:
typedef long long ll;
map<string,ll>是把string 映射成ID(long long 类型),vector<string>v_str;这个vector是存放字符串的,用来判断是第几个ID(这个方法在前面的stack例题中用到了)
map<ll,ll>p2;是p2是用来把字符串ID映射成行数r,vector<ll>v[maxn];是用来存放r行c列个字符串的!
然后枚举c1,c2 在枚举行数即可查看连接的字符串是否存在(连接字符串可以用ID1 * 100000 + ID2 表示 是独一无二的!)
发现存在的话,用变量记录行数和列数即可!
代码如下:
#include<iostream>#include<string>#include<vector>#include<cstdio>#include<map>#include<set>#include<algorithm>using namespace std;typedef long long ll;const ll mod = 100000;const ll maxn = 10000 + 10;map<string,ll>pid;map<ll,ll>p2;vector<string>v_str;void input(string &str){ ll cont = 0; str.resize(maxn); for(;;){ ll ch = getchar(); if (ch != '\r' && ch != '\n' && ch != ',')str[cont++] = ch; else break; } str.resize(cont);}ll ID(string str){ if (!pid.count(str)){ v_str.push_back(str); return pid[str] = v_str.size()-1; } return pid[str];}int main(){ ll n,m; while(cin >> n >> m){ vector<ll>v[maxn]; p2.clear(); pid.clear(); v_str.clear(); for(ll i = 0; i < maxn; ++i)v[i].clear(); getchar(); for (ll i = 0; i < n; ++i){ for (ll j = 0 ;j < m; ++j){ string str; input(str); v[i].push_back(ID(str)); } } ll t1,t2,t3,t4; for (ll c = 0; c < m-1; ++c){ for (ll c1 = c+1; c1 < m; ++c1){ for (ll r = 0; r < n; ++r){ ll num1 = v[r][c]; ll num2 = v[r][c1]; ll numb = num1 * mod + num2; if (!p2.count(numb))p2[numb] = r; else if (p2[numb] != r){ t1 = p2[numb]+1;t2 = r+1;t3 = c+1;t4 = c1+1; goto TT; } } p2.clear(); } } printf("YES\n"); continue; TT: printf("NO\n"); printf("%lld %lld\n",t1,t2); printf("%lld %lld\n",t3,t4); } return 0;}
0 0
- 例题5-9 UVA 1592 Database数据库
- UVa #1592 Database (例题5-9)
- Database UVA 1592数据库
- 紫书章五例题9 数据库 UVA 1592 (map+vector)
- Uva1592 Database 【map应用】【例题5-9】
- 紫书动规 例题9-5 UVA
- 《算法竞赛入门经典2ndEdition 》例题5-9 数据库(Database, Uva1592)
- 例题5-9 数据库 UVa1592
- UVA - 1592 Database
- UVa 1592 - Database
- UVa 1592 Database
- UVA 1592(p128)----Database
- UVA 1592 Database
- UVa 1592 Database
- Uva 1592 Database
- uva 1592Database
- Database, UVa 1592
- UVA 1592 Database(map)
- Hibernate乐观锁和悲观锁
- Android网络编程之Internet地址&InetAddress
- Kong-Mashape 开源 API 网关介绍
- Android广告条效果--使用Volley实现网络图片的自动轮播(仿淘宝、网易广告页轮播效果)
- ios-CocoaPods的使用
- 例题5-9 UVA 1592 Database数据库
- 网站上线之前的基础SEO设置
- word如何从任意一页添加页码
- 测试一下
- 人人转联盟官网?人人转联盟是真的吗?人人转联盟能赚钱吗?
- 【d3.js教程05】简单的图标之弧形
- List.subList用法,以及多个LIST<T>相加问题解决方案
- 万科宝能大战折射出IT互联网界技术与资本的危机
- linux uid备忘