#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
struct node
{
int value;
bool friend operator<(node x,node y)
{
return x.value>y.value;
}
};
int num[30];
int main()
{
int n,m,i,j,len,sum,sum1;
char ch[1000];
char s[1000];
while(~scanf("%d",&n))
{
while(n--)
{
node xx,yy;
priority_queue<node>p;
sum1=0;
memset(num,0,sizeof(num));
sum=0;
scanf("%d",&m);
scanf("%s",ch);
len=strlen(ch);
for(i=0;i<len;i++)
{
num[ch[i]-'a']++;
if(num[ch[i]-'a']==1)
{
s[sum1++]=ch[i];
}
}
for(i=0;i<sum1;i++)
{
xx.value=num[s[i]-'a'];
p.push(xx);
}
if(p.size()==1)
{
xx=p.top();
if(xx.value>m)
printf("no\n");
else
printf("yes\n");
continue;
}
else
{
while(p.size()!=1)
{
xx=p.top();
p.pop();
yy=p.top();
p.pop();
sum+=xx.value+yy.value;
xx.value=xx.value+yy.value;
p.push(xx);
}
if(sum>m)
{
printf("no\n");
}
else
printf("yes\n");
}
}
}
return 0;
}
杭电2527
最新推荐文章于 2018-05-17 19:16:55 发布