QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#947394 | #9079. Hamming Distance | xjt05# | AC ✓ | 2ms | 3840kb | C++23 | 4.1kb | 2025-03-22 15:36:53 | 2025-03-22 15:36:54 |
Judging History
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