与顺序无关,统计个数即可
int t;char s[maxn];intmain(){scanf("%d",&t);while(t--){scanf("%s",s);int len=strlen(s),shi=0,bu=0,jian=0;repp(i,0,len){if(s[i]=='R')shi++;if(s[i]=='P')bu++;if(s[i]=='S')jian++;}if(shi>=bu&&shi>=jian){rep(i,1,len)printf("P");puts("");}elseif(bu>=shi&&bu>=jian){rep(i,1,len)printf("S");puts("");}else{rep(i,1,len)printf("R");puts("");}}return0;}
C - Create The Teams
贪心思想是逆序遍历
正序遍历可能会造成“浪费”
int t,n,a[maxn],pos,x,minn;intmain(){scanf("%d",&t);while(t--){scanf("%d%d",&n,&x);rep(i,1,n)scanf("%d",&a[i]);sort(a+1,a+1+n);int pos=n,ans=0;while(pos>0){int len=1;
minn=a[pos];while(minn*len<x){
minn=a[--pos];if(pos<=0)break;
len++;}
pos--;if(minn*len>=x)ans++;if(pos<=0)break;}W(ans);}return0;}