RT,代码如下,
#include<bits/stdc++.h>
using namespace std;
#define R register
#define w_ putchar(' ')
#define wn putchar('\n')
int n,a[1000005],t[1000005],ans;
char ch;
map<char,int>MAP;
inline void read(R int &y){
R int s=0,w=1;
R char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
y=s*w;
}
inline void write(R int x){
if(x < 0){
putchar('-');
write(-x);
return;
}
if(x >= 10) write(x / 10);
putchar(x % 10 + '0');
}
void msort(int l,int r){
int i,j,m,k;
if(l==r)return ;
m=(l+r)/2,sort(1,m),sort(m+1,r),i=k=l,j=m+1;
while(i<=m&&j<=r)
if(a[i]>a[j])t[k]=a[j],ans=ans+m-i+1,j++,k++;
else t[k]=a[i],i++,k++;
while(i<=m)t[k]=a[i],i++,k++;
while(j<=r)t[k]=a[j],j++,k++;
for(int k=l;k<=r;k++)a[k]=t[k];
}
int main(){
ios::sync_with_stdio(0);
read(n);
for(int i=1;i<=n;i++){
cin>>ch;MAP[ch]=i;
}
for(int i=1;i<=n;i++){
cin>>ch;a[i]=MAP[ch];
}
msort(1,n);
write(ans);
return 0;
}
错误信息:
In file included from /usr/include/c++/8/bits/stl_algobase.h:65,
from /usr/include/c++/8/algorithm:61,
from /usr/include/x86_64-linux-gnu/c++/8/bits/stdc++.h:65,
from /tmp/compiler_xni6dsha/src:1:
/usr/include/c++/8/bits/stl_iterator_base_types.h: In instantiation of ‘struct std::iterator_traits<int>’:
/usr/include/c++/8/bits/stl_algo.h:1850:3: required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1885:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1971:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:4834:18: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = int]’
/tmp/compiler_xni6dsha/src:28:20: required from here
/usr/include/c++/8/bits/stl_iterator_base_types.h:168:53: 错误:‘int’不是类、结构或联合类型
typedef typename _Iterator::iterator_category iterator_category;
^~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_iterator_base_types.h:169:53: 错误:‘int’不是类、结构或联合类型
typedef typename _Iterator::value_type value_type;
^~~~~~~~~~
/usr/include/c++/8/bits/stl_iterator_base_types.h:170:53: 错误:‘int’不是类、结构或联合类型
typedef typename _Iterator::difference_type difference_type;
^~~~~~~~~~~~~~~
/usr/include/c++/8/bits/stl_iterator_base_types.h:171:53: 错误:‘int’不是类、结构或联合类型
typedef typename _Iterator::pointer pointer;
^~~~~~~
/usr/include/c++/8/bits/stl_iterator_base_types.h:172:53: 错误:‘int’不是类、结构或联合类型
typedef typename _Iterator::reference reference;
^~~~~~~~~
In file included from /usr/include/c++/8/algorithm:62,
from /usr/include/x86_64-linux-gnu/c++/8/bits/stdc++.h:65,
from /tmp/compiler_xni6dsha/src:1:
/usr/include/c++/8/bits/stl_algo.h: In instantiation of ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’:
/usr/include/c++/8/bits/stl_algo.h:1885:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1971:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:4834:18: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = int]’
/tmp/compiler_xni6dsha/src:28:20: required from here
/usr/include/c++/8/bits/stl_algo.h:1852:8: 错误:一元 ‘*’参数类型无效(有‘int’)
*__first = _GLIBCXX_MOVE(__val);
^~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:71,
from /usr/include/c++/8/algorithm:61,
from /usr/include/x86_64-linux-gnu/c++/8/bits/stdc++.h:65,
from /tmp/compiler_xni6dsha/src:1:
/usr/include/c++/8/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_less_iter::operator()(_Iterator1, _Iterator2) const [with _Iterator1 = int; _Iterator2 = int]’:
/usr/include/c++/8/bits/stl_algo.h:1847:14: required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1885:25: required from ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1971:31: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:4834:18: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = int]’
/tmp/compiler_xni6dsha/src:28:20: required from here
/usr/include/c++/8/bits/predefined_ops.h:43:16: 错误:一元 ‘*’参数类型无效(有‘int’)
{ return *__it1 < *__it2; }
^~~~~~
/usr/include/c++/8/bits/predefined_ops.h:43:25: 错误:一元 ‘*’参数类型无效(有‘int’)
{ return *__it1 < *__it2; }
^~~~~~
In file included from /usr/include/c++/8/bits/stl_algo.h:61,
from /usr/include/c++/8/algorithm:62,
from /usr/include/x86_64-linux-gnu/c++/8/bits/stdc++.h:65,
from /tmp/compiler_xni6dsha/src:1:
/usr/include/c++/8/bits/stl_heap.h: In instantiation of ‘void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’:
/usr/include/c++/8/bits/stl_algo.h:1675:19: required from ‘void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1933:25: required from ‘void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1948:27: required from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = int; _Size = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:1968:25: required from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
/usr/include/c++/8/bits/stl_algo.h:4834:18: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = int]’
/tmp/compiler_xni6dsha/src:28:20: required from here
/usr/include/c++/8/bits/stl_heap.h:252:7: 错误:一元 ‘*’参数类型无效(有‘int’)
*__result = _GLIBCXX_MOVE(*__first);
^~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_pair.h:59,
from /usr/include/c++/8/utility:70,
from /usr/include/c++/8/algorithm:60,
from /usr/include/x86_64-linux-gnu/c++/8/bits/stdc++.h:65,
from /tmp/compiler_xni6dsha/src:1:
/usr/include/c++/8/bits/stl_heap.h:252:19: 错误:一元 ‘*’参数类型无效(有‘int’)
*__result = _GLIBCXX_MOVE(*__first);
^