QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#748695#7780. Dark LaTeX vs. Light LaTeXmonuiCompile Error//C++232.5kb2024-11-14 21:06:572024-11-14 21:06:58

Judging History

你现在查看的是最新测评结果

  • [2024-11-25 20:53:52]
  • hack成功,自动添加数据
  • (/hack/1258)
  • [2024-11-14 21:06:58]
  • 评测
  • [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...