{"id":16,"date":"2022-06-04T10:52:00","date_gmt":"2022-06-04T02:52:00","guid":{"rendered":"http:\/\/ubuntu.tim-wcx.ltd\/wordpress\/index.php\/2022\/06\/04\/2020-09-12-%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%93%88%e5%b8%8c\/"},"modified":"2022-06-04T10:52:00","modified_gmt":"2022-06-04T02:52:00","slug":"2020-09-12-%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%93%88%e5%b8%8c","status":"publish","type":"post","link":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/2022\/06\/04\/2020-09-12-%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%93%88%e5%b8%8c\/","title":{"rendered":"2020-09-12 \u5b57\u7b26\u4e32\u54c8\u5e0c"},"content":{"rendered":"<p><svg  style=\"display: none;\">\n                        <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path>\n                    <\/svg><\/p>\n<p><a href=\"http:\/\/icpc.upc.edu.cn\/problem.php?cid=2569&#038;pid=6\">http:\/\/icpc.upc.edu.cn\/problem.php?cid=2569&#038;pid=6<\/a><\/p>\n<h5><a id=\"_1\"><\/a>\u9898\u76ee\u63cf\u8ff0<\/h5>\n<p>It is now far into the future and human civilization is ancient history. Archaeologists from a distant planet have recently discovered Earth. Among many other things, they want to decipher the English language.<br \/> They have collected many printed documents to form a dictionary, but are aware that sometimes words are not spelled correctly (typos are a universal problem). They want to classify each word in the dictionary as either correct or a typo. Na\u00efvely, they do this using a simple rule: a typo is any word in the dictionary such that deleting a single character from that word produces another word in the dictionary.<br \/> Help these alien archaeologists out! Given a dictionary of words, determine which words are typos. That is,which words result in another word in the dictionary after deleting a single character.<br \/> For example if our dictionary is {hoose, hose, nose, noises}. Then hoose is a typo because we can obtain hose by deleting a single \u2019o\u2019 from hoose. But noises is not a typo because deleting any single<br \/> character does not result in another word in the dictionary.<br \/> However, if our dictionary is {hoose, hose, nose, noises, noise} then the typos are hoose, noises,and noise.<\/p>\n<h5><a id=\"_8\"><\/a>\u8f93\u5165<\/h5>\n<p>The \ufb01rst line of input contains a single integer n, indicating the number of words in the dictionary.<br \/> The next n lines describe the dictionary. The ith of which contains the ith word in the dictionary. Each word consists only of lowercase English letters. All words are unique.<br \/> The total length of all strings is at most 1 000 000.<\/p>\n<h5><a id=\"_12\"><\/a>\u8f93\u51fa<\/h5>\n<p>Display the words that are typos in the dictionary. These should be output in the same order they appear in the input. If there are no typos, simply display the phrase NO TYPOS.<\/p>\n<h5><a id=\"_14\"><\/a>\u6837\u4f8b\u8f93\u5165<\/h5>\n<p>\u3010\u6837\u4f8b1\u3011<br \/> 5<br \/> hoose<br \/> hose<br \/> nose<br \/> noises<br \/> noise<br \/> \u3010\u6837\u4f8b2\u3011<br \/> 4<br \/> hose<br \/> hoose<br \/> oose<br \/> moose<br \/> \u3010\u6837\u4f8b3\u3011<br \/> 5<br \/> banana<br \/> bananana<br \/> bannanaa<br \/> orange<br \/> orangers<\/p>\n<h5><a id=\"_35\"><\/a>\u6837\u4f8b\u8f93\u51fa<\/h5>\n<p>\u3010\u6837\u4f8b1\u3011<br \/> hoose<br \/> noises<br \/> noise<br \/> \u3010\u6837\u4f8b2\u3011<br \/> hoose<br \/> moose<br \/> \u3010\u6837\u4f8b3\u3011<br \/> NO TYPOS<\/p>\n<h5><a id=\"_45\"><\/a>\u89e3\u6790<\/h5>\n<p>\u5b57\u7b26\u4e32\u54c8\u5e0c<\/p>\n<pre><code class=\"prism language-c\"><span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(1)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(2)<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">pragma<\/span> GCC optimize(3,\"Ofast\",\"inline\")<\/span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><bits\/stdc++.h><\/span><\/span>\nusing namespace std<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">char<\/span> a<span class=\"token punctuation\">[<\/span><span class=\"token number\">2000500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">typedef<\/span> <span class=\"token keyword\">unsigned<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token keyword\">long<\/span> ll<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">char<\/span> b<span class=\"token punctuation\">[<\/span><span class=\"token number\">2000500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll h<span class=\"token punctuation\">[<\/span><span class=\"token number\">2000500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll p<span class=\"token punctuation\">[<\/span><span class=\"token number\">2000500<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">int<\/span> base<span class=\"token operator\">=<\/span><span class=\"token number\">31<\/span><span class=\"token punctuation\">;<\/span>\nmap<span class=\"token operator\"><<\/span>ll<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">><\/span>w<span class=\"token punctuation\">;<\/span>\nvector<span class=\"token operator\"><<\/span><span class=\"token keyword\">int<\/span><span class=\"token operator\">><\/span>q<span class=\"token punctuation\">;<\/span>\nll <span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>ll l<span class=\"token punctuation\">,<\/span>ll r<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token comment\">\/\/cout<<l<<' '<<r<<' '<<h[r]-h[l-1]*p[r-l+1]<<endl;<\/span>\n    <span class=\"token keyword\">return<\/span> h<span class=\"token punctuation\">[<\/span>r<span class=\"token punctuation\">]<\/span><span class=\"token operator\">-<\/span>h<span class=\"token punctuation\">[<\/span>l<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span>p<span class=\"token punctuation\">[<\/span>r<span class=\"token operator\">-<\/span>l<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    ios<span class=\"token punctuation\">:<\/span><span class=\"token punctuation\">:<\/span><span class=\"token function\">sync_with_stdio<\/span><span class=\"token punctuation\">(<\/span>false<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    cout<span class=\"token punctuation\">.<\/span><span class=\"token function\">tie<\/span><span class=\"token punctuation\">(<\/span><span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> n<span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%d\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    a<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token string\">' '<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\"><=<\/span>n<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%s\"<\/span><span class=\"token punctuation\">,<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        b<span class=\"token punctuation\">[<\/span><span class=\"token function\">strlen<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token string\">'\u0000'<\/span><span class=\"token punctuation\">;<\/span>\n        b<span class=\"token punctuation\">[<\/span><span class=\"token function\">strlen<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token string\">' '<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token function\">strcat<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">,<\/span>b<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    p<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">==<\/span><span class=\"token string\">' '<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            q<span class=\"token punctuation\">.<\/span><span class=\"token function\">push_back<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">!=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n                w<span class=\"token punctuation\">[<\/span>h<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">else<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            h<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>h<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span>base<span class=\"token operator\">+<\/span>a<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">-<\/span><span class=\"token string\">'a'<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">!=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n        p<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>p<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span>base<span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">int<\/span> flag<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><<\/span>q<span class=\"token punctuation\">.<\/span><span class=\"token function\">size<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j<span class=\"token operator\">=<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\"><<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">{<!-- --><\/span>\n            ll sum2<span class=\"token operator\">=<\/span>h<span class=\"token punctuation\">[<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span>p<span class=\"token punctuation\">[<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">-<\/span>j<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token function\">get<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>w<span class=\"token punctuation\">[<\/span>sum2<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>\n            <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> k<span class=\"token operator\">=<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>k<span class=\"token operator\"><<\/span>q<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>k<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n                <span class=\"token punctuation\">{<!-- --><\/span>\n                    <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%c\"<\/span><span class=\"token punctuation\">,<\/span>a<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token punctuation\">}<\/span>\n                <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"n\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                flag<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"NO TYPOSn\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/icpc.upc.edu.cn\/pr&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}