亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Database,Uva1592

2019-11-10 20:00:17
字體:
來源:轉載
供稿:網友

Peter studies the theory of relational databases. Table in the relational database consists of values that are arranged in rows and columns.

There are different normal forms that database may adhere to. Normal forms are designed to minimize the redundancy of data in the database. For example, a database table for a library might have a row for each book and columns for book name, book author, and author's email.

If the same author wrote several books, then this rePResentation is clearly redundant. To formally define this kind of redundancy Peter has introduced his own normal form. A table is in Peter's Normal Form (PNF) if and only if there is no pair of rows and a pair of columns such that the values in the corresponding columns are the same for both rows.

 

How to compete in ACM ICPCPeterpeter@neerc.ifmo.ru
How to win ACM ICPCMichaelmichael@neerc.ifmo.ru
Notes from ACM ICPC championMichaelmichael@neerc.ifmo.ru

The above table is clearly not in PNF, since values for 2rd and 3rd columns repeat in 2nd and 3rd rows. However, if we introduce unique author identifier and split this table into two tables -- one containing book name and author id, and the other containing book id, author name, and author email, then both resulting tables will be in PNF.

Given a table your task is to figure out whether it is in PNF or not.

 

Input 

Input contains several datasets. The first line of each dataset contains two integer numbers n and m ( 1n10000, 1m10), the number of rows and columns in the table. The following n lines contain table rows. Each row has m column values separated by commas. Column values consist of ASCII characters from space (ASCII code 32) to tilde (ASCII code 126) with the exception of comma (ASCII code 44). Values are not empty and have no leading and trailing spaces. Each row has at most 80 characters (including separating commas).

 

Output 

For each dataset, if the table is in PNF write to the output file a single Word ``YES" (without quotes). If the table is not in PNF, then write three lines. On the first line write a single word ``NO" (without quotes). On the second line write two integer row numbers r1 and r2 ( 1r1, r2n, r1r2), on the third line write two integer column numbers c1 and c2 ( 1c1, c2m, c1c2), so that values in columns c1and c2 are the same in rows r1 and r2.

 

Sample Input 

 

3 3How to compete in ACM ICPC,	Peter,		peter@neerc.ifmo.ruHow to win ACM ICPC,		Michael,	michael@neerc.ifmo.ruNotes from ACM ICPC champion,	Michael,	michael@neerc.ifmo.ru2 31,Peter,peter@neerc.ifmo.ru2,Michael,michael@neerc.ifmo.ru

 

Sample Output 

 

NO2 32 3YES

題意:存在兩個不同行r1,r2和兩個不同列c1,c2。是否存在r1,r2和從c1,c2使得(r1,c1)和(r2,c1)相同。

分析:

可以直接寫一個四重循環枚舉出r1,r2,c1,c2。理論上是可以的,但實際上卻會TLE超時。

解決方法是只枚舉c1,c2,然后從上往下掃描各行。每次碰到一個新的行r,就把對應c1,c2的內容作為一個二元組存到一個map里,然后如果map的鍵值已經存在這個二元組,該二元組映射到的就是所要求的r1,而當前行就是r2。

細節問題:如何表示由c1,c2兩列組成的二元組?一種方法是直接用兩個字符串拼成一個長字符串(中間用一個其他地方不可能出現的字符分隔),但是速度比較慢,(因為在map中查找元素時需要進行字符串比較操作)。

更值得推薦的方法是在主循環之前先做一個預處理—給所有字符串分配一個編號,則整個數據庫中每個單元格都變成了整數,上述二元組就變成了兩個整數。

思路:1.首先將每一個表格里面的字符串用map進行編號處理2.一行一行的掃描,每兩列的編號作為一個二元組存入map中,若已經存在該編號則說明有滿足條件的,需要輸出。復制代碼
#include <iostream>#include <string>#include <set>#include <vector>#include <map>using namespace std;const int ROW = 10000 + 10;const int COL = 10 + 5;int n,m;int s[ROW][COL];map<string, int> IDcache;struct node{    int x,y;    node(int x, int y):x(x),y(y) { }    bool Operator < (const node& r) const { return x<r.x || x==r.x&&y<r.y; }};map<node,int> data;int main(){    int n,m;    int ID=1;    cin>>n>>m;    string x;    for(int i=0;i<n;i++){        for(int j=0;j<m;j++){             cin>>x;             if(!IDcache.count(x)){                 IDcache[x]=ID;                 s[i][j]=ID;                 ID++;             }             else{                s[i][j]=IDcache[x];             }        }    }    int flag=0;        for(int c1=0;c1<m;c1++){        for(int c2=c1+1;c2<m;c2++){                data.clear();                for(int r=0;r<n;r++){                    int x = s[r][c1];                    int y = s[r][c2];                    node p(x,y);                    if(!data.count(p)){                        data[p]=r;                    }                    else                    {                        flag=1;                        cout<<"NO"<<endl;                        cout<<data[p]+1<<" "<<r+1<<endl<<c1+1<<" "<<c2+1<<endl;                    }                }        }    }    if(flag==0)    {      cout<<"YES";    }    cout<data++<<endl;        return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线精品视频视频中文字幕| 国产午夜精品一区二区三区| 日日噜噜噜夜夜爽亚洲精品| 国产亚洲精品va在线观看| 亚洲欧美国产精品| 久久久精品日本| 亚洲第一网站免费视频| 亚洲国产精品久久久久秋霞不卡| 国产精品18久久久久久麻辣| 在线视频欧美性高潮| 色综合久久久888| 亚洲一区二区三区xxx视频| 在线观看日韩视频| 亚洲一区二区三区在线免费观看| 亚洲一级免费视频| 亚洲欧美在线x视频| 尤物yw午夜国产精品视频| 欧美自拍大量在线观看| 国产www精品| 国产精品久久久久999| 亚洲精品美女在线观看| 久久久久国色av免费观看性色| 亚洲色图50p| 一本大道香蕉久在线播放29| 日韩精品久久久久久久玫瑰园| 国产欧美一区二区白浆黑人| 久久手机免费视频| 色婷婷av一区二区三区久久| 午夜精品在线观看| 亚洲高清福利视频| 亚洲自拍偷拍色图| 国产成人高清激情视频在线观看| 97国产精品视频人人做人人爱| 欧美激情国产日韩精品一区18| 久久香蕉频线观| 国产亚洲精品久久久优势| 91精品国产高清久久久久久久久| 久久亚洲欧美日韩精品专区| 亚洲91精品在线| 国产精品露脸av在线| 日韩精品视频在线播放| 清纯唯美日韩制服另类| 96精品视频在线| 久久精品电影网| 亚洲第一精品自拍| 日韩视频在线免费| 最新91在线视频| 国产成人精品视频在线| 国产日产亚洲精品| 成人国产精品日本在线| 中文字幕在线看视频国产欧美| 97国产精品人人爽人人做| 亚洲精品国产电影| 成人网在线免费看| 久青草国产97香蕉在线视频| 91久久精品国产91久久| 久久人人97超碰精品888| 国产精品国产三级国产aⅴ浪潮| 国产精品91久久久| 18性欧美xxxⅹ性满足| 中文字幕在线观看亚洲| 亚洲最大成人免费视频| 中文字幕在线看视频国产欧美在线看完整| 国产精品h片在线播放| www国产91| 久久视频免费观看| 精品在线观看国产| 97在线观看视频| 欧美网站在线观看| 欧美丝袜一区二区三区| 影音先锋欧美精品| 日韩欧美黄色动漫| 伦伦影院午夜日韩欧美限制| 日韩精品亚洲精品| 国产精品久久久久久久天堂| yellow中文字幕久久| 久久久久久久影院| 亚洲美腿欧美激情另类| 国产日本欧美一区二区三区在线| 久久青草福利网站| 久久久这里只有精品视频| 欧美夫妻性视频| 亚洲免费伊人电影在线观看av| 亚洲va国产va天堂va久久| 亚洲欧美国产va在线影院| 亚洲精品久久久久久久久| 欧美日韩国产中文精品字幕自在自线| 日韩av大片在线| 久久久久久国产精品三级玉女聊斋| 国产97免费视| 国产欧美日韩最新| 国产成人亚洲精品| 亚洲视频在线播放| 亚洲成人xxx| 久久久久久伊人| 九九热r在线视频精品| 久久天天躁狠狠躁夜夜躁2014| 免费91在线视频| 欧美午夜精品伦理| 亚洲欧美另类在线观看| 狠狠综合久久av一区二区小说| 国产成人av网| 国产视频久久久久久久| 国产精品久久久久久久久久| 日韩av在线不卡| 精品视频偷偷看在线观看| 欧美成人精品在线视频| 亚洲人午夜精品| 欧美另类老女人| 亚洲视频一区二区三区| 亚洲福利视频网| 国产亚洲人成a一在线v站| 欧美亚洲视频在线看网址| 国产精品男人的天堂| 欧美激情精品久久久久久黑人| 国产一区二区三区日韩欧美| 国产欧美精品一区二区| 国产精品成人va在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲福利在线播放| 自拍亚洲一区欧美另类| 成人性生交xxxxx网站| 久久久久国色av免费观看性色| 欧美电影在线观看网站| 中文字幕在线亚洲| 亚洲成成品网站| 国产欧美日韩高清| 韩国三级电影久久久久久| 热久久视久久精品18亚洲精品| 高清欧美一区二区三区| 日韩成人在线网站| 成人美女免费网站视频| 国产乱肥老妇国产一区二| 久久精品国产视频| 国产精品高潮呻吟久久av无限| 疯狂做受xxxx欧美肥白少妇| 国产精品国产三级国产aⅴ9色| 国产一区二区色| 91超碰caoporn97人人| 欧美日韩一区二区在线| 精品av在线播放| 97婷婷涩涩精品一区| 欧美激情免费看| 97精品一区二区视频在线观看| 国产精品久久久久久亚洲影视| 91av在线免费观看| 欧美一区二区三区免费视| 亚洲网在线观看| 国产午夜精品全部视频在线播放| 中文字幕一区二区三区电影| 欧美精品免费在线| 成人精品在线观看| 91精品国产91久久久久久最新| 国外成人免费在线播放| 欧美黑人一级爽快片淫片高清| 精品性高朝久久久久久久| 久久久精品免费| 中日韩美女免费视频网址在线观看| 久热国产精品视频| 国产有码一区二区| 成人性生交大片免费观看嘿嘿视频| 亚洲第一精品自拍| 亚洲精品mp4| 亚洲自拍小视频免费观看|