#B. 串(string)

    Type: RemoteJudge 1000ms 256MiB

串(string)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

题目译自 eJOI2018 Problem C. AB-Strings

题目描述

你有两个字符串 s,ts,t,它们其中仅包含字母 ab。你可以多次进行如下操作:选出一个 ss 的前缀和一个 tt 的前缀并交换它们。(注意,这个前缀既可以为空也可以为整个串)

你的任务是找出一个操作序列使得进行这些操作后,一个字符串只包含字符 a,而另一个只包含字符 b

你应该尽可能的进行最少的操作次数,但非最优解仍可能得到一部分分数,详情见“数据范围与提示”一栏。

输入格式

输入两行为两个字符串 s,ts,t

输出格式

输出第一行为一个整数 nn0n5×1050\leq n\leq 5\times 10^5),表示操作总数。

接下来的 nn 行,每行包含两个整数 ai,bia_i,b_i,分别为 s,ts,t 在这次交换中的前缀长度。

如果有多种可能的方案,则可以输出任意一种。

bab
bb
2
1 0
1 3
bbbb
aaa
0

提示

样例 11 解释:

在这个样例中,首先把第一个串 11 个长度的前缀与第二个串 00 个长度的前缀交换,即将 b 插入第二个串开头。这时两个串变成了 abbbb。接下来把第一个串 11 个长度的前缀与第二个串 33 个长度的前缀交换,即交换 abbb,此时两个串变成了 bbbba ,达成目标。

样例 22 解释:

已经是最终要求的状态了。


计分策略

nn 为你给出的操作数量,mm 为标准答案,本题使用 SPJ

  • 如果所有任务中 n=mn=m,那么将得到 100%100\% 的分数。

  • 如果所有任务中 nm+2n\leq m+2,那么将得到 70%70\% 的分数。(四舍五入到最接近的整数)

  • 如果所有任务中 n2m+2n\leq 2m+2,那么将得到 50%50\% 的分数。(四舍五入到最接近的整数)

  • 如果所有任务中 n5×105n\leq 5\times 10^5,那么将得到 30%30\% 的分数。(四舍五入到最接近的整数)

  • 如果至少一个任务中 n>5×105n > 5\times 10^5,那么将得到 0%0\% 的分数。


对于 100%100\% 的数据,保证 $1\leq \lvert s\rvert,\lvert t\rvert \leq 2\times 10^5$,s,t\lvert s\rvert,\lvert t\rvert 分别代表 s,ts,t 的长度,且保证至少有一个串中包含至少一个字符 a,至少一个串中包含至少一个字符 b

数据限制

子任务编号 分数 限制
11 55 1s,t61\leq \lvert s\rvert,\lvert t\rvert \leq 6,这两个字符串中共含有一个字符 a
22 1010 1s,t61\leq \lvert s\rvert,\lvert t\rvert \leq 6
33 2020 1s,t501\leq \lvert s\rvert,\lvert t\rvert \leq 50
44 1s,t2501\leq \lvert s\rvert,\lvert t\rvert \leq 250
55 $1\leq \lvert s\rvert,\lvert t\rvert \leq 2\times 10^3$
66 2525 无特殊限制

The 2nd Yuzusoft Cup Stage 3: Gensokyo

Not Attended
Status
Done
Rule
IOI
Problem
6
Start at
2024-3-24 7:00
End at
2024-4-3 7:00
Duration
240 hour(s)
Host
Partic.
3