演算法競賽入門經典 習題4 6

2021-09-27 16:03:31 字數 2112 閱讀 2574

uva508

morse mismatches

各種地方描述的這道題目不一樣。精確匹配時,有的地方說輸出最短的(長度相同再按照字典序排序),有的地方說輸出字典序最小的;模糊匹配時,必須是刪除最少字元後完全匹配,或者增加最少字元後精確匹配才可以輸出,輸出跟字典序好像沒關係(udebug上的測試用例就是先按長度、再按字典序,但是我ac的**是按照字典序的),而且不滿足上述條件的也不用考慮。

下面**中32行的注釋可有可無,反正都ac了。

#include

#include

#include

#include

#include

using

namespace std;

void

print

(const vector

&vsmorse)

}void

print

(const map

&mssdic)

}string getperfectmatch

(const map

&mssdic,

const string &strword)}if

(match >1)

return strret;

}string getfuzzymatch

(const map

&mssdic,

const string &strword)

//需要刪除才可以匹配

if(idx == iter-

>second.

size()

&& iter-

>second.

size()

< strword.

size()

)}//需要增加才可以匹配

else

if(idx == strword.

size()

&& iter-

>second.

size()

> strword.

size()

)}}return strret;

}int

main()

elseif(

isdigit

(strplain[0]

))}//print(vsmorse);

map mssdic;

while

(getline

(cin, strline))}

//print(mssdic);

string strmatch, strword;

while

(getline

(cin, strline))}

}return0;

}/*a .-

b -...

c -.-.

d -..

e .f ..-.

g --.

h ....

i ..

j .---

k -.-

l .-..

m --

n -.

o ---

p .--.

q --.-

r .-.

s ...

t -u ..-

v ...-

w .--

x -..-

y -.--

z --..

0 ------

1 .-----

2 ..---

3 ...--

4 ....-

5 .....

6 -....

7 --...

8 ---..

9 ----.*an

earthquake

eatgod

hath

imready

towhat

wroth

*.--.....-- .....--....

--.----.. .--.-.----..

.--.....-- .--.

..-.-.-....--.-..-.--.-.

..-- .-...--..-.--

---- ..--

**/

演算法競賽入門經典習題2 6

用1,2,3,9組成3個三位數abc,def和ghi,每個數字恰好使用一次,要 求abc def ghi 1 2 3。按照 abc def ghi 的格式輸出所有解,每行乙個解 思路 如果首先要保證每個數字都用一次,那麼這個題就會變得很麻煩,所以就先讓abc,def,ghi產生倍數關係然後對 這三個...

演算法競賽入門經典 習題3 7

uva1368 dna consensus string 本來以為題目是要在已有序列中找乙個最小的序列,後來仔細讀了下題才發現是要構造乙個距離最小的序列。感覺這道題應該就是貪心演算法吧?每一位和已有序列的對應位差得越少,總體也就越少。include include include include u...

演算法競賽入門經典 習題4 10

uva815 flooded 這題就很不錯,雖然最後輸出浮點數,但是不同精度控制。還有這題的背景倒是挺不錯的。為了讓買房者心裡對房子被洪水淹了的情況有個譜,某家公司給住戶提供了乙個單元格大小為10公尺乘10公尺的沙盤區域,所有的新房都會建在單元格中。洪水可能來自雨水 雪水和自來水。洪水都會先把海拔最...