U328368 【数据加强版】[SDOI2015] 双旋转字符串
题目背景
**2023.8.16 18:55 目前数据有锅,可能出现非正常WA**
**2023.8.16 19:26 数据已修复(也许)**
本题为 P3318 的数据加强版,修复了原版所有数据 `n=m` 的 bug
题目描述
题目同 [P3318 [SDOI2015] 双旋转字符串](https://www.luogu.com.cn/problem/P3318)
输入格式
无
输出格式
无
说明/提示
本数据(100%)范围满足原题的:
$ 2 \le N \times TotalS + M \times TotalT \le 4 \times 10^6$
此外,额外满足:
$ 200 \le s,t \le 300$
$ 5000 \le n,m \le 6000$
本数据以以下数据生成器生成,在没有本地库的情况下您无法使用本生成器(咱把下载链接放下面了,可以修改 `include` 的符号为 `""` 后并把代码库放在程序目录下使用),但是您可以查看本题的数据生成逻辑
数据生成使用了 @hyj0824 的 STD 程序,侵权请联系删除
另外如果数据出锅请反馈,咱会非常感谢的(づ ̄3 ̄)づ╭❤~
```cpp
#include
#include
using namespace std;
using pii = pair;
bool CASE1 = false;
bool CASE2 = false;
bool CASE3 = false;
bool CASE4 = false;
namespace Make{
Rander rd;
pii ST = {200,300};
pii NM = {5000,6000};
const int MAXVAL = 4e6;
const int MAXST = 606;
string str1[MAXST],str2[MAXST];
inline string Cut(const string& str,int l,int r){
string ret;
for(int i = l;i = MAXVAL){
s = rd(ST.first,ST.second),t = rd(ST.first,ST.second);
n = rd(NM.first,NM.second),m = rd(NM.first,NM.second);
}
if(CASE1){
if(n < m)swap(n,m);
}
if(CASE2){
int mn = min(n,m);
n = mn,m = mn;
}
int len = n + m,st = min(s,t);
for(int i = 1;i