HBC217237真的字符串,动态树(LCT),后缀自动机(SAM),数据结构,字符串不讲武德题解

一切都很简单 STL编程 122 0
题库丰富多样,涵盖各个领域,全网最全C++题库,让您在练习中不断成长!

马掌门在研究阴阳互相转化的过程中发明了一种有趣的排序算法,他将这种排序算法命名为混元形意排序法。如果我们用C++实现该算法,可以得到以下的代码。 #define N 100009 int tmp[N]; void change(int arr[], int begin, int end) { if (begin >= end) return; int mid = (begin + end) / 2, size = 0; for (int i = mid + 1; i <= end; ++i) tmp[++size] = arr[i]; for (int i = begin; i <= mid; ++i) tmp[++size] = arr[i]; for (int i = 0; i < size; ++i) arr[i + begin] = tmp[i + 1]; } void sort(int arr[], int begin, int end) { if (begin >= end) return; int mid = (begin + end) / 2; sort(arr, begin, mid); sort(arr, mid + 1, end); if (arr[begin] > arr[mid + 1]) change(arr, begin, end); } 你知道这个算法是错误的,所以你说这个没用,但是他说这个有用,还要让你试试。 他会告诉你一个数字,让你构造一个相应长度的数列给他排序,如果排序完毕后数列中的数不是从小到大排列的,他就会说他大意了,否则他会说他全防出去了,并且一拳打在你鼻子上。 你当然不想被他一拳打在鼻子上,所以你要构造一个数列让他的排序算法出错。

标签: HBC217237真的字符串 动态树(LCT) 后缀自动机(SAM) 数据结构 字符串不讲武德题解