輸入的第一行包括三個整數 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行,其中每組資...