Mcfire05 @ 2024-08-03 20:04:40
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ll n,m;
cin>>n>>m;
string a,b;
cin>>a>>b;
ll j=1,tmp=0,ans=0;
for(int i=0;i<n;i++){
if(b[i]=='#'){
tmp++;
}
}
ans=tmp/26;
tmp%=26;
tmp++;
for(int i=0;i<n;i++){
if(j+96>122){
j=1;
}
if(tmp+j>27 and a[i]=='#'){
tmp=0;tmp--;
a[i]='a';
j=2;
}
if(ans>0 and a[i]=='#'){
if(ans==0){
j++;
}
a[i]='a';
ans--;
}else if(a[i]=='#'){
a[i]=char(j+96);
j++;
}
}
cout<<a;
}
by liaocr @ 2024-08-03 20:44:45
@Mcfire05 正在看看出来一个问题 这应该是贪心 本来的情况j就是1 然后此时如果ans>0 它相当于白白用掉26个b的空位 这应该是一个问题
e 还有一个我不太清楚 就是你tmp%26之后+1是啥 我没看懂
by liaocr @ 2024-08-03 21:03:47
@Mcfire05 我调出来了 说一下
第一 你的ans其实没啥用 完全不用写 把下面删掉
ans=tmp/26;
tmp%=26;
第二 tmp不用+1所以这个也删掉
tmp++;
第三 把if里面条件要改 把and改&&(and不太好 以后建议都写&& )不用>27 改成>=27 还要另外加一个条件 具体看我发的第一条评论 tmp也不是设定为0 所以 for循环内改成如下
if(j+96>122){
j=1;
}
if(tmp+j>=27 && a[i]=='#'&& j!=1 ){
tmp -= (26-j);
a[i]='a';
j=2;
}else if(a[i]=='#'){
a[i]=char(j+96);
j++;
}
好的 改到这样就ok可以AC了 AC代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ll n,m;
cin>>n>>m;
string a,b;
cin>>a>>b;
ll j=1,tmp=0,ans=0;
for(int i=0;i<n;i++){
if(b[i]=='#'){
tmp++;
}
}
for(int i=0;i<n;i++){
if(j+96>122){
j=1;
}
if(tmp+j>=27 && a[i]=='#'&& j!=1 ){
tmp -= (26-j);
a[i]='a';
j=2;
}else if(a[i]=='#'){
a[i]=char(j+96);
j++;
}
}
cout<<a;
}
by Mcfire05 @ 2024-08-03 21:37:05
@liaocr 谢谢
by Mcfire05 @ 2024-08-03 22:01:17
@liaocr 交了还是70分qwq
by liaocr @ 2024-08-03 22:21:10
@Mcfire05 sorry 我代码粘错了 正确代码
#include<bits/stdc++.h>
using namespace std;
//#define int long long
const int N=2e5+5;
int n,m;
string s,t;
int num; //t 中 # 的数量
int now;
int main(){
cin.tie(0)->sync_with_stdio(0);
cin>>n>>m;
cin>>s>>t;
for(int i=0;i<n;i++){
if(t[i]=='#'){
num++;
}
}
if(num==0){ //若 t 中不含 #
for(int i=0;i<n;i++){
if(s[i]=='#'){
cout<<char(now+'a');
now++; now%=26;
}
else{
cout<<s[i];
}
}
return 0;
}
if(num==m){
cout<<s; return 0;
}
for(int i=0;i<n;i++){
if(s[i]=='#'){
if(num+now>=26&&now!=0){
num-=(26-now);
now = 1;
cout<<"a";
}
else{
cout<<char(now+'a');
now++;
now%=26;
}
}
else{
cout<<s[i];
}
}
return 0;
}
by Mcfire05 @ 2024-08-03 22:24:32
@liaocr 谢谢qwq
by liaocr @ 2024-08-03 22:24:47
@Mcfire05 AC后如果可以点个关注吧 我最近都在帮人调调题啥的 顺便点个关注我要向朋友炫耀一下 你之后有不对的也可以私信我(尽量黄题及以下 之后的我就不太会了)
by Mcfire05 @ 2024-08-03 22:26:35
@liaocr ok
by AL__1S @ 2024-08-04 08:43:14
@Mcfire05
//TOTAL DSTRUCTION//