QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#748695 | #7780. Dark LaTeX vs. Light LaTeX | monui | Compile Error | / | / | C++23 | 2.5kb | 2024-11-14 21:06:57 | 2024-11-14 21:06:58 |
Judging History
你现在查看的是最新测评结果
- [2024-11-25 20:53:52]
- hack成功,自动添加数据
- (/hack/1258)
- [2024-11-14 21:06:58]
- 评测
- 测评结果:Compile Error
- 用时:0ms
- 内存:0kb
- [2024-11-14 21:06:57]
- 提交
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define lowbit(x) x&(-x)
const int N=5010;
const int M1 = 1e9+9;
const int M2 = 998244351;
const int P1 = 131;
const int P2 = 1331;
string a,b;
unordered_map<pair<int, int>,int> st_a,st_b;
int na,nb;
int hash_a1[N],hash_b1[N];
int hash_a2[N],hash_b2[N];
int fac1[N], fac2[N];
void init_init(){
fac1[0]=1;
fac2[0] = 1;
for(int i=1;i<N;i++){
fac1[i]=(fac1[i-1]*P1)%M1;
fac2[i]=(fac2[i-1]*P2)%M2;
}
}
void init(string& s,int len,int* ans, int M, int P){
for(int i=1;i<=len;i++){
ans[i]=ans[i-1]*P+s[i]-'a'+1;
ans[i]%=M;
}
}
void calc(string& s,int len,unordered_map<pair<int,int>,int>& st,int* ans1, int* ans2,int d){
vector<vector<int>> op(N,vector<int>(N,0));
vector<int> lst(N,0);
for(int i=1;i<=len;i++){
for(int j=len; j > i; j--){
lst[j]=0;
if(s[i]!=s[j]) continue;
if(s[i-1]==s[j-1]) lst[j]=lst[j-1]+1;
op[i+1][j]-=1;
op[i+1][max(j-lst[j]-1,i+1)]+=1;
}
}
for(int i=1;i<=len;i++){
int res=0;
for(int j=i;j<=len;j++){
res+=op[i][j];
int num=res+d;
int to1=ans1[j]-ans1[i-1]*fac1[j-i+1]%M1;
int to2=ans2[j]-ans2[i-1]*fac2[j-i+1]%M2;
to1=(to1%M1+M1)%M1;
to2=(to2%M2+M2)%M2;
pair<int,int> pr = {to1, to2};
st[pr]+=num;
}
}
}
int getans(string& s,int len,unordered_map<pair<int,int>,int>& st,int* ans1, int* ans2){
int res=0;
for(int i=1;i<=len;i++){
for(int j=i;j<=len;j++){
int to1=ans1[j]-ans1[i-1]*fac1[j-i+1]%M1;
int to2=ans2[j]-ans2[i-1]*fac2[j-i+1]%M2;
to1=(to1%M1+M1)%M1;
to2=(to2%M2+M2)%M2;
res+=st[{to1,to2}];
}
}
return res;
}
void solve(){
cin>>a>>b;
na=a.size(),nb=b.size();
a="#"+a;b="#"+b;
init_init();
init(a,na,hash_a1,M1,P1);
init(a,na,hash_a2,M2,P2);
init(b,nb,hash_b1,M1,P1);
init(b,nb,hash_b2,M2,P2);
calc(a,na,st_a,hash_a1,hash_a2,1);
calc(b,nb,st_b,hash_b1,hash_b2,0);
int res=getans(a,na,st_b,hash_a1,hash_a2)+getans(b,nb,st_a,hash_b1,hash_b2);
cout<<res<<endl;
}
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);
int t=1;
// cin>>t;
while(t--)
solve();
return 0;
}
Details
answer.code:12:35: error: use of deleted function ‘std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map() [with _Key = std::pair<long long int, long long int>; _Tp = long long int; _Hash = std::hash<std::pair<long long int, long long int> >; _Pred = std::equal_to<std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<const std::pair<long long int, long long int>, long long int> >]’ 12 | unordered_map<pair<int, int>,int> st_a,st_b; | ^~~~ In file included from /usr/include/c++/13/unordered_map:41, from /usr/include/c++/13/functional:63, from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:53, from answer.code:1: /usr/include/c++/13/bits/unordered_map.h:148:7: note: ‘std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map() [with _Key = std::pair<long long int, long long int>; _Tp = long long int; _Hash = std::hash<std::pair<long long int, long long int> >; _Pred = std::equal_to<std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<const std::pair<long long int, long long int>, long long int> >]’ is implicitly deleted because the default definition would be ill-formed: 148 | unordered_map() = default; | ^~~~~~~~~~~~~ /usr/include/c++/13/bits/unordered_map.h:148:7: error: use of deleted function ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::_Hashtable() [with _Key = std::pair<long long int, long long int>; _Value = std::pair<const std::pair<long long int, long long int>, long long int>; _Alloc = std::allocator<std::pair<const std::pair<long long int, long long int>, long long int> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<std::pair<long long int, long long int> >; _Hash = std::hash<std::pair<long long int, long long int> >; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ In file included from /usr/include/c++/13/bits/unordered_map.h:33: /usr/include/c++/13/bits/hashtable.h:530:7: note: ‘std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::_Hashtable() [with _Key = std::pair<long long int, long long int>; _Value = std::pair<const std::pair<long long int, long long int>, long long int>; _Alloc = std::allocator<std::pair<const std::pair<long long int, long long int>, long long int> >; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<std::pair<long long int, long long int> >; _Hash = std::hash<std::pair<long long int, long long int> >; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _RehashPolicy = std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ is implicitly deleted because the default definition would be ill-formed: 530 | _Hashtable() = default; | ^~~~~~~~~~ /usr/include/c++/13/bits/hashtable.h:530:7: error: use of deleted function ‘std::__detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _Traits>::_Hashtable_base() [with _Key = std::pair<long long int, long long int>; _Value = std::pair<const std::pair<long long int, long long int>, long long int>; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<std::pair<long long int, long long int> >; _Hash = std::hash<std::pair<long long int, long long int> >; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ In file included from /usr/include/c++/13/bits/hashtable.h:35: /usr/include/c++/13/bits/hashtable_policy.h:1710:7: note: ‘std::__detail::_Hashtable_base<_Key, _Value, _ExtractKey, _Equal, _Hash, _RangeHash, _Unused, _Traits>::_Hashtable_base() [with _Key = std::pair<long long int, long long int>; _Value = std::pair<const std::pair<long long int, long long int>, long long int>; _ExtractKey = std::__detail::_Select1st; _Equal = std::equal_to<std::pair<long long int, long long int> >; _Hash = std::hash<std::pair<long long int, long long int> >; _RangeHash = std::__detail::_Mod_range_hashing; _Unused = std::__detail::_Default_ranged_hash; _Traits = std::__detail::_Hashtable_traits<true, false, true>]’ is implicitly deleted because the default definition would be ill-formed: 1710 | _Hashtable_base() = default; | ^~~~~~~~~~~~~~~ /usr/include/c++/13/bits/hashtable_policy.h:1710:7: error: use of deleted function ‘std::__detail::_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHash, _Unused, __cache_hash_code>::_Hash_code_base() [with _Key = std::pair<long long int, long long int>; _Value = std::pair<const std::pair<long long int, long long int>, long long int>; _Extra...