51nod 貪心入門之一 完美字串

2021-07-27 07:12:21 字數 773 閱讀 5797

約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1-26之間的整數。

約翰不在乎字母大小寫。(也就是說字母f和f)的完美度相同。給定乙個字串,輸出它的最大可能的完美度。例如:dad,你可以將26分配給d,25分配給a,這樣整個字串完美度為77。

分析: 由排序不等式,出現次數最多的字母顯然應該給26。所以這個題目變成了統計每種字母出現的次數了,然後按照出現次數從大到小,依次分配從高到低的權值。這就是最樸素的貪心思想。

最後,我們來提供輸入輸出資料,由你來寫一段程式,實現這個演算法,只有寫出了正確的程式,才能繼續後面的課程。

輸入

輸入乙個字串s(s的長度 <= 10000),s中沒有除字母外的其他字元。

輸出

由你將1-26分配給不同的字母,使得字串s的完美度最大,輸出這個完美度。

輸入示例

dad

輸出示例

77

簡單的貪心。

#include#include#include using namespace std;

int vote[30];

int main()

sort(vote,vote+27);

for(i=1;i<=26;i++)

cout<

51nod 完美字串

輸入 輸入乙個字串s s的長度 10000 s中沒有除字母外的其他字元。輸出 由你將1 26分配給不同的字母,使得字串s的完美度最大,輸出這個完美度。輸入示例 dad 輸出示例 77 這個題就是首先說不分大小寫,所以就是先來個大寫字母轉化為小寫字母,在轉化的過程中就是新開乙個陣列,用於存這個字母出現...

51Nod 完美字串

約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫。也就是說字母f和f 的完美度相同。給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串完美...

51nod 貪心入門

有若干個活動,第i個開始時間和結束時間是 si,fi 活動之間不能交疊,要把活動都安排完,至少需要幾個教室?分析 能否按照之一問題的解法,每個教室安排盡可能多的活動,即按結束時間排序,再貪心選擇不衝突的活動,安排乙個教室之後,剩餘的活動再分配乙個教室,繼續貪心選擇 反例 a 1,2 b 1,4 c ...