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公尺的沙盤區域,所有的新房都會建在單元格中。洪水可能來自雨水 雪水和自來水。洪水都會先把海拔最...