ACM簡單計算題 填詞

2021-07-26 13:58:00 字數 1226 閱讀 8707

輸入的第一行包括三個整數 n, m 和 p (2 <= m, n <= 10, 0 <= p <=100)。接下來的 n 行,每行包括 m 個字元,來表示方格盤。接下來 p 行給出需要在方格盤中找到的單詞。

輸入保證填詞遊戲至少有一組答案。 輸入中給出的字母都是大寫字母。

輸出「神秘單詞」,注意「神秘單詞」中的字母要按照字典序給出。

3 3 2

ebggee

egebeg

gee

eeg
題目中給出的條件比較隱晦。輸入中給出的字母都是大寫字母 – 表明輸出也只能是大寫字母。輸入保證填詞遊戲至少有一組答案 – 這說明我們不必尋找單詞所在的位置,只要去掉這些單詞所占用的字母就可以了。 「神秘單詞」中的字母要按照字典序給出 – 說明我們只要知道「神秘單詞」中的字母組成就可以了,在字母組成確定的情況下,按字典序輸出的方式只有一種。分析到這裡我們發現這其實是個很簡單的問題。給出乙個字母的集合,從中去掉一些在給出單詞中出現過的字母,將剩下的字母按字典序輸出!

可以定義乙個有 26 個元素的陣列,分別記錄在輸入的矩形中,每個字母出現的次數,當讀入單詞時,將陣列中對應到單詞中的字母的元素值減一。處理完所有的單詞後,將陣列中的非 0 的元素對應的字母依次輸出,陣列元素的值是幾,就輸出幾次該字母。

#include #include using namespace std;

int main()

cin>>n>>m>>p;

//讀入 n*m 的矩陣,並記錄矩陣中每個字母出現的次數

for(i=0;i>str;

for(j=0;str[j]!='\0';j++)

} //讀入 p 個單詞,並且將單詞中出現的字母在上一段的累計陣列中去掉

for(i=0;i>str;

for(j=0;str[j]!='\0';j++)

} //輸出所有出現次數大於 0 的字母。

for(i=0;i<26;i++){

if(characters[i]){

for(j=0;j

ACM簡單計算題 校門外的樹

某校大門外長度為 l 的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是 1 公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸 0 的位置,另一端在 l 的位置 數軸上的每個整數點,即 0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一...

SSL 1474 簡單計算題

給定長度為 n 的陣列 s 你需要統計有多少個四元組 a,b,c,d 滿足 1 leq as d 且 a,b,c,d 互不相等。利用容斥的思想,把所有 s as d 的情況全部求出來,但是有些情況是不合法的,如 a c,a d,b c,b d 將這些方法減去。關於如何把 s as d 的情況全部求出...

計算題(直接遞迴)

problem description 乙個簡單的計算,你需要計算f m,n 其定義如下 當m 1時,f m,n n 當n 1時,f m,n m 當m 1,n 1時,f m,n f m 1,n f m,n 1 input 第一行包含乙個整數t 1 t 100 表示下面的資料組數。以下t行,其中每組資...