QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#947394#9079. Hamming Distancexjt05#AC ✓2ms3840kbC++234.1kb2025-03-22 15:36:532025-03-22 15:36:54

Judging History

This is the latest submission verdict.

  • [2025-03-22 15:36:54]
  • Judged
  • Verdict: AC
  • Time: 2ms
  • Memory: 3840kb
  • [2025-03-22 15:36:53]
  • Submitted

answer

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<functional>
#include<stack>
#include<unordered_map>
#include<string>
#define ll                            long long 
#define lowbit(x) (x & -x)
#define endl "\n"//                           交互题记得删除
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
using namespace std;
mt19937 rnd(time(0));
const ll mod = 998244353;
//const ll p=rnd()%mod;
#define F first
#define S second
// tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update>;find_by_order(k),找第k位(从小到大)的数字,order_of_key(x),x的排名
ll ksm(ll x, ll y)
{
    ll ans = 1;
    x %= mod;
    while (y)
    {
        if (y & 1)
        {
            ans = ans * x % mod;
        }
        x = x * x % mod;
        y >>= 1;
    }
    return ans;
}
ll gcd(ll x, ll y)
{
    if (y == 0)
        return x;
    else
        return gcd(y, x % y);
}
inline ll read()
{
    register ll x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c>'9')
    {
        if (c == '-') f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9')
    {
        x = (x << 3) + (x << 1) + (c ^ 48); //等价于x*10+c-48,使用位运算加速
        c = getchar();
    }
    return x * f;
}
void fio()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}
// struct s
// {
//     ll l,r;
//     friend bool operator<(cosnt s &a, const s& b)
//     {
//         return 
//     };
// };
int main()
{
    fio();
    ll t;
    cin >> t;
    ll ff = 0;
    while (t--)
    {
        ff++;
        string f1, f2;
        cin >> f1 >> f2;
        ll cs = 0;
        for (ll i = 0; i < f1.size(); i++)
        {
            if (f1[i] != f2[i])cs++;
        }
        string ans = "";
        ll z1 = 0;
        ll z2 = 0;
        cout << "Case " << ff << ": ";
        for (ll i = 0; i < f1.size(); i++)
        {
            if (f1[i] == f2[i])ans += 'a';
            else
            {
                if (z1 + z2 == cs)
                {
                    if (z1 && z2)
                    {
                        if (f1[i] < f2[i])ans += f1[i], z1--;
                        else ans += f2[i], z2--;
                    }
                    else if (z1)
                    {
                        ans += f1[i];
                        z1--;
                    }
                    else
                    {
                        ans += f2[i];
                        z2--;
                    }
                }
                else
                {
                    char g = min(f1[i], f2[i]);
                    if (g != 'a')
                    {
                        ans += 'a';
                    }
                    else if (f1[i] == 'a')
                    {
                        if(z1>0)z1--,ans+='a';
                        else if(z2+1<=cs-1)ans+='a',z2++;
                        else if(f2[i]=='b')
                        {
                            if(z2>0)ans+='b',z2--;
                            else ans+='c';
                        }
                        else 
                        {
                            ans+='b';
                        }
                    }
                    else
                    {
                        if(z2>0)z2--,ans+='a';
                        else if(z1+1<=cs-1)ans+='a',z1++;
                        else if(f1[i]=='b')
                        {
                            if(z1>0)ans+='b',z1--;
                            else ans+='c';
                        }
                        else 
                        {
                            ans+='b';
                        }
                    }
                }
                cs--;
            }
        }
        cout << ans << endl;
    }
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3712kb

input:

2
abc
acd
abandon
newyork

output:

Case 1: aaa
Case 2: aaaaark

result:

ok 6 tokens

Test #2:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

3
abcbacjasiodjadosasadasdada
abcbacjasiodjadosasadasdada
aba
abb
bbbbbbaaaaa
aaaaaabbbbb

output:

Case 1: aaaaaaaaaaaaaaaaaaaaaaaaaaa
Case 2: aac
Case 3: aaaaabaaaac

result:

ok 9 tokens

Test #3:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

1
aab
bba

output:

Case 1: abc

result:

ok 3 tokens

Test #4:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

1
aaaea
ccbdc

output:

Case 1: aabac

result:

ok 3 tokens

Test #5:

score: 0
Accepted
time: 2ms
memory: 3840kb

input:

100
y
m
tbqyaxbi
pqdqdayk
vdgccwsfo
wjgrckffn
hhka
bwqz
zcleuatejof
txpvaqmidwg
wbbl
fcuj
rfgjo
wfluk
ivimfoedco
lstisjtzfv
bhllf
puyfh
swuyfbufmz
swuyfbufmz
wvocvzngafbvnkfkbrcut
ldoxqnikmdtodzzzzmchs
lsfjwmjhszqiqhmwcrsaftrzvebgwhydynoiotqhqkrqhgxxuf
crvapaebmmxljfiiuoiiomnxhwwxgpulltbdwflgxgpezgc...

output:

Case 1: a
Case 2: aaaaaaaa
Case 3: aaaaaaaaa
Case 4: aaab
Case 5: aaaaaaaaaaa
Case 6: aaaa
Case 7: aaaaa
Case 8: aaaaaaaaaa
Case 9: aaaaa
Case 10: aaaaaaaaaa
Case 11: aaaaaaaaaaaaaaaaaaaas
Case 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaua
Case 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxj
...

result:

ok 300 tokens

Extra Test:

score: 0
Extra Test Passed