决斗king讨论

对决斗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 个赞