对决斗king进行讨论
3 个赞
你好,我帮你测几组数据
3 个赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=1000000+5;
int n,maxx,die,killl;
int mp[10],mp2[10],c[maxn];
bool cmp(int x,int y){
return x>y;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
char x;
cin>>x;
c[i]=x-'0';
maxx=max(x-'0',maxx);
}
for(int i=1;i<=n;i++){
char x;
cin>>x;
mp[x-'0']++;
}
for(int i=1;i<=9;i++){
mp2[i]=mp[i];
}
for(int i=1;i<=n;i++){
int num;
for(num=c[i];mp[num]==0&&num<=maxx;num++){//
}
if (num>maxx){
//cout<<num<<" ";
die++;
}
else{
mp[num]--;
}
}
for(int i=1;i<=n;i++){
int num;
for(num=c[i]+1;mp2[num]==0&&num<=maxx;num++){//
}
if (num<=maxx){
//cout<<i<<" "<<mp[num]<<" "<<num<<" ";
killl++;
mp2[num]--;
}
}
cout<<die<<endl<<killl;
}
3 个赞
3 个赞
过不了 WA80
3 个赞
所以只是讨论
3 个赞
正确代码:
#include<bits/stdc++.h>
using namespace std;
int n;
string qs,ys;
int q[1000005],y[1000005];
int main(){
cin>>n;
cin>>qs>>ys;
for(int i=0;i<n;i++){
q[i]=qs[i]-'0';
y[i]=ys[i]-'0';
}
sort(q,q+n);
sort(y,y+n);
int i=0,j=0,cnt1=0,cnt2=0;
while(j<n){
if(y[j]>=q[i]){
i++;
cnt1++;
}
j++;
}
i=0,j=0;
while(j<n){
if(y[j]>q[i]){
i++;
cnt2++;
}
j++;
}
cout<<n-cnt1<<endl<<cnt2;
return 0;
}
3 个赞
cnt1枚举的是什么
3 个赞
等下,在写题解,回来贴上
2 个赞