当前位置:网站首页>Uva1592 Database
Uva1592 Database
2022-07-06 04:33:00 【Pecksniff. k】
The original title is :
Ideas : Use one IDcache To assign all strings ID, recycling pair Form a binary . Maintain left endpoint c1, Enumerate right endpoints c2, At the same time through row Scan the assigned from top to bottom id library . Query the first row That's ok pair(c1,c2) Whether it exists or not .
Code :
#include<iostream>
#include<algorithm>
#include<string>
#include<sstream>
#include<set>// aggregate
#include<map>// mapping
#include<vector>// vector
#include<utility>//pair
#define DEBUG
using namespace std;
map<string,int> IDcache;// Record ID
map<pair<int,int>,int> Binary_pair;// Record where the binary is row
int cnt=0;
int ID(string s)// Distribute ID
{
if(IDcache.count(s))
{
return IDcache[s];
}
else
{
return IDcache[s]=cnt++;
}
}
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,m;
while(cin>>n>>m)
{
IDcache.clear();
Binary_pair.clear();
vector<vector<int>> dict(n,vector<int>(m));// Deposit ID
string s;
cnt=0;
cin.get();// Eliminate line breaks
for(int i=0;i<n;i++)
{
getline(cin,s);
for(int j=0;j<s.length();j++)
{
if(s[j]==',')
{
s[j]=' ';// Replace commas with spaces
}
else if(s[j]==' ')
{
s[j]=',';// Replace the space with an impossible comma
}
}
stringstream ss(s);// Character stream
for(int j=0;j<m;j++)
{
string cur;
ss>>cur;
dict[i][j]=ID(cur);
}
}
#ifndef DEBUG// Debug statement
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<dict[i][j]<<" ";
}
cout<<endl;
}
#endif
if(m>1)
{
for(int c1=0;c1<m-1;c1++)// Maintain left endpoint
{
for(int c2=c1+1;c2<m;c2++)// Enumerate right endpoints
{
Binary_pair.clear();
for(int row=0;row<n;row++)// Traverse from top to bottom
{
pair<int,int> temp(dict[row][c1],dict[row][c2]);
if(Binary_pair.count(temp))// Is not Peter normal form
{
cout<<"NO"<<endl;
cout<<Binary_pair[temp]+1<<" "<<row+1<<endl;
cout<<c1+1<<" "<<c2+1<<endl;
goto out;// Jump out of multiple loops
}
else
{
Binary_pair[temp]=row;
}
}
}
}
}
cout<<"YES"<<endl;
out:;
}
return 0;
}
边栏推荐
- Several important classes in unity
- ue5 小知识点 开启lumen的设置
- Microservice resource address
- POI add border
- 动态规划(树形dp)
- Fedora/REHL 安装 semanage
- JVM garbage collector concept
- VPP performance test
- Lora gateway Ethernet transmission
- Patent | subject classification method based on graph convolution neural network fusion of multiple human brain maps
猜你喜欢
The most detailed and comprehensive update content and all functions of guitar pro 8.0
Mysql数据库慢sql抓取与分析
One question per day (Mathematics)
CADD课程学习(8)-- 化合物库虚拟筛选(Virtual Screening)
Implementation of knowledge consolidation source code 1: epoll implementation of TCP server
Recommendation | recommendation of 9 psychotherapy books
Solutions: word coverage restoration, longest serial number, Xiaoyu buys stationery, Xiaoyu's electricity bill
食品行业仓储条码管理系统解决方案
The implementation of the maize negotiable digital warehouse receipt standard will speed up the asset digitization process of the industry
Certbot failed to update certificate solution
随机推荐
Solve the compilation problem of "c2001: line breaks in constants"
Brief tutorial for soft exam system architecture designer | general catalog
MySQL reported an error datetime (0) null
题解:《单词覆盖还原》、《最长连号》、《小玉买文具》、《小玉家的电费》
English Vocabulary - life scene memory method
Basic explanation of turtle module - draw curve
Mysql database storage engine
The implementation of the maize negotiable digital warehouse receipt standard will speed up the asset digitization process of the industry
Easyrecovery靠谱不收费的数据恢复电脑软件
1291_ Add timestamp function in xshell log
Can CDC pull the Oracle table in full
How to estimate the population with samples? (mean, variance, standard deviation)
. Net interprocess communication
Mixed development of QML and QWidget (preliminary exploration)
During pycharm debugging, the view is read only and pause the process to use the command line appear on the console input
729. My schedule I (set or dynamic open point segment tree)
HotSpot VM
Slow SQL fetching and analysis of MySQL database
Script lifecycle
【HBZ分享】ArrayList的增删慢查询快的原因