bjqxszx_zhongqide @ 2024-08-07 21:56:31
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,al=0,bl=0,z=1;
char a[100001],b[100001];
cin>>n>>m>>a>>b;
for(int i=0;i<n;i++){
if(a[i]=='#'){
al++;
}
}
bl=m-al;
if(bl<26){
for(int i=0;i<n;i++){
if(a[i]=='#'){
a[i]='a'+z-1;
z++;
}
}
}else{
for(int i=0;i<n;i++){
if(z==1){
if(a[i]=='#'){
a[i]='a';
z++;
}
}else if(bl>=26&&a[i]=='#'){
a[i]='a';
bl-=26;
}else{
if(a[i]=='#'){
a[i]='a'+z-1;
z++;
}
}
z=(z-1)%26+1;
}
}
cout<<a;
return 0;
}
by XLoffy @ 2024-08-07 22:01:56
@bjqxszx_zhongqide 可以看看我的
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,pa[100005],pb[100005],k,cnt=0;
string a,b;
bool fa=0,fb=0;
cin>>n>>m>>a>>b;
for(int i=0;i<n;i++)
{
if(a[i]=='#') fa=1;
if(b[i]=='#')
{
fb=1;
cnt++;
}
}
if(fa==0)
{
cout<<a;
return 0;
}
k=m/26+1;
cnt+=25;
if(k<=1||fb==0)
{
char t='a';
for(int i=0;i<n;i++)
{
if(a[i]=='#')
{
a[i]=t;
if(t=='z') t='a';
else t=char((int)t+1);
}
}
cout<<a;
return 0;
}
char t='b';
for(int i=0;i<n;i++)
{
if(a[i]=='#')
{
if(k&&cnt>=25)
{
k--;
cnt-=25;
a[i]='a';
continue;
}
a[i]=t;
if(t==char(int('z')-cnt))
{
t='a';
cnt=0;
}
else if(t=='z') t='a';
else t=char((int)t+1);
}
}
cout<<a;
return 0;
}
球一关QAQ
by ACcept_prince @ 2024-08-08 09:06:26
@bjqxszx_zhongqide 你也可以这么改
#include<bits/stdc++.h>
using namespace std;
int n,m,al,bl,z=1;
char a[100001],b[100001];
int main(){
cin>>n>>m>>a>>b;
for(int i=0;i<n;i++){
if(b[i]=='#'){
bl++;
}
}
for(int i=0;i<n;i++){
if(a[i]=='#'){
a[i]=char((z-1)%26+'a');
if(bl>=(26-z)){
bl-=(26-z);
z=1;
}
else{
z++;
}
}
}
cout<<a;
return 0;
}