?
题意:给定一个字符串,然后可以随意分配每个字符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 ?