QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#843532 | #9079. Hamming Distance | 1903331632 | AC ✓ | 1ms | 3768kb | C++23 | 2.7kb | 2025-01-04 20:04:12 | 2025-01-04 20:04:19 |
Judging History
answer
#include <bits/stdc++.h>
#define Lnnnb return 0;
#define ll long long
#define endl '\n'
#define mem(a) memset(a, 0, sizeof(a))
#define maxn 1010101
using namespace std;
ll n, ttt, dif[maxn];
string a, b;
void scan()
{
cin >> a;
cin >> b;
a = " " + a;
b = " " + b;
}
void solve()
{
ll dnt = 0, lval = 0, rval = 0;
string s((int)a.size(), ' ');
n = a.size();
for (ll i = 1; i <= n; ++i)
{
if (a[i] == b[i])
s[i] = 'a';
else
{
dif[++dnt] = i;
}
}
for (ll iii = 1; iii <= dnt; ++iii)
{
ll x = dif[iii];
if (a[x] != 'a' && b[x] != 'a')
{
if (abs(lval - rval) <= dnt - iii)
{
s[x] = 'a';
}
else
{
if (lval >= rval)
{
s[x] = a[x];
rval++;
}
else
{
s[x] = b[x];
lval++;
}
}
}
else
{
a[x] == 'a' ? rval++ : lval++;
if (abs(lval - rval) <= dnt - iii)
{ /// 只要差值<=剩下的不同的
s[x] = 'a';
}
else
{
a[x] == 'a' ? rval-- : lval--; /// 先不取a
if (abs(lval - rval) == dnt - iii)
{ /// 保持不变
if (a[x] != 'b' && b[x] != 'b')
{
s[x] = 'b';
}
else
{
if (lval > rval && a[x] == 'b')
s[x] = 'b', rval++;
else if (lval < rval && b[x] == 'b')
s[x] = 'b', lval++;
else
s[x] = 'c';
}
}
else
{ /// 差太大了
if (lval >= rval)
{
s[x] = a[x];
rval++;
}
else
{
s[x] = b[x];
lval++;
}
}
}
}
}
s.erase(s.begin());
cout << "Case " << ttt << ": " << s;
}
int main()
{
ios::sync_with_stdio(false);
/// cin.tie(0);cout.tie(0);
ll t = 1;
cin >> t;
for (ttt = 1; ttt <= t; ++ttt)
{
scan();
solve();
if (ttt != t)
cout << endl;
}
Lnnnb
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3580kb
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: 3768kb
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: 3420kb
input:
1 aab bba
output:
Case 1: abc
result:
ok 3 tokens
Test #4:
score: 0
Accepted
time: 0ms
memory: 3548kb
input:
1 aaaea ccbdc
output:
Case 1: aabac
result:
ok 3 tokens
Test #5:
score: 0
Accepted
time: 0ms
memory: 3580kb
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