題意:給定一個字符串,然後可以隨意分配每個字符1-26的完美度,問最大完美度是多少。
思路:貪心,開始太疏忽,沒有想到貪心,因為26肯定是分配給出現次數最多的那個,其他依次遞減。我用一個數組保存每個字符出現的次數,然後在從大到小排序就行。
#include#include #include #include using namespace std; char s[10001]; int b[10001]; int cmp(int x,int y) { return x>y; } int main() { int sum,n,m,k; while(scanf(%s,s)!=EOF) { int i,l=strlen(s); n=26; sum=0; k=l; memset(b,0,sizeof(b)); //printf(%d ,'0'); for(i=0;i