QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#472053 | #1219. 你的名字 | windviolet | 0 | 0ms | 0kb | C++20 | 3.6kb | 2024-07-11 14:04:00 | 2024-07-11 14:04:01 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e6+5;
const int INF=1e9+9;
char s[N];
struct Node{
int x,y,id;
}t1[N],t2[N];
int rk[N],sum[N];
int sa[N];
int height[N];
struct Query{
string ss;
int siz;
int l,r;
}qu[N];
int _log[N];
int min_n[N][25];
int allen;
void init(){
for(int i=1;i<allen;i++)min_n[i][0]=height[i];
for(int i=1;i<=_log[allen-1];i++){
for(int j=1;j<=allen-(1<<i);j++){
min_n[j][i]=min(min_n[j][i-1],min_n[j+(1<<(i-1))][i-1]);
}
}
}
int query(int l,int r){
return min(min_n[l][_log[r-l+1]],min_n[r-(1<<_log[r-l+1])+1][_log[r-l+1]]);
}
set<int>tar;
set<int>::iterator IT;
int tmp[N],tmplen=0;
int ll[N],rr[N];
signed main(){
freopen("1.txt","r",stdin);
freopen("1.out","w",stdout);
_log[0]=1;
for(int i=2;i<=2e6;i++){
if(i==(1<<(_log[i-1]+1)))_log[i]=_log[i-1]+1;
else _log[i]=_log[i-1];
}
string all;
all.clear();
string n7;
cin>>n7;
int n=n7.size();
for(int i=0;i<n;i++)all+=n7[i];
all+='<';
int q;
cin>>q;
for(int i=1;i<=q;i++){
cin>>qu[i].ss;
//cout<<qu[i].ss<<"\n";
scanf("%lld%lld",&qu[i].l,&qu[i].r);
qu[i].siz=qu[i].ss.size();
qu[i].l=all.size()+1;
for(int j=0;j<qu[i].siz;j++)all+=qu[i].ss[j];
qu[i].r=all.size();
all+='>';
}
//cout<<all<<"\n";
allen=all.size();
//cout<<allen<<"??\n";
for(int i=0;i<allen;i++){
sum[all[i]-'0']++;
}
for(int i=1;i<=129;i++){
sum[i]+=sum[i-1];
}
for(int i=1;i<=allen;i++){
rk[i]=sum[all[i-1]-'0'];
//cout<<rk[i]<<"??\n";
}
for(int B=1;B<=allen;B<<=1){
for(int i=1;i<=allen;i++){
t1[i].id=i;
t1[i].x=rk[i];
t1[i].y=rk[i+B];
}
for(int i=0;i<=allen;i++)rk[i]=0;
for(int i=1;i<=allen;i++)rk[t1[i].y]++;
for(int i=1;i<=allen;i++)rk[i]+=rk[i-1];
//for(int i=1;i<=n;i++)cout<<rk[i]<<"\n";
for(int i=1;i<=allen;i++)t2[rk[t1[i].y]--]=t1[i];
//for(int i=1;i<=n;i++)cout<<rk[i]<<"\n";
for(int i=0;i<=allen;i++)rk[i]=0;
for(int i=1;i<=allen;i++)rk[t2[i].x]++;
for(int i=1;i<=allen;i++)rk[i]+=rk[i-1];
for(int i=allen;i>=1;i--)t1[rk[t2[i].x]--]=t2[i];
for(int i=1;i<=allen;i++){
if(t1[i].x==t1[i-1].x&&t1[i].y==t1[i-1].y)rk[t1[i].id]=rk[t1[i-1].id];
else rk[t1[i].id]=rk[t1[i-1].id]+1;
//cout<<t1[i].id<<" "<<rk[t1[i].id]<<"\n";
}
//cout<<"\n";
//cout<<"\n";
}
for(int i=1;i<=allen;i++)sa[rk[i]]=i;
//for(int i=1;i<=allen;i++)cout<<sa[i]<<" ";
//cout<<"\n";
int p=0;
for(int i=1;i<allen;i++){
if(p>0)p--;
//if(rk[i]==13)cout<<p<<"p\n";
while(all[sa[rk[i]]+p-1]==all[sa[rk[i]-1]+p-1])p++;
//if(rk[i]==13)cout<<p<<"p\n";
height[rk[i]]=p;
}
for(int i=1;i<=allen;i++){
ll[i]=0;
rr[i]=INF;
}
for(int i=1;i<=n;i++){
ll[rk[i]]=rk[i];
rr[rk[i]]=rk[i];
}
for(int i=2;i<=allen;i++)ll[i]=max(ll[i],ll[i-1]);
for(int i=allen-1;i>=1;i--)rr[i]=min(rr[i],rr[i+1]);
for(int i=1;i<allen;i++)height[i]=height[i+1];
//for(int i=1;i<=allen;i++)cout<<height[i]<<" ";
//cout<<"\n";
init();
for(int i=1;i<=q;i++){
int ans=0;
tmplen=0;
for(int j=qu[i].l;j<=qu[i].r;j++){
tmp[++tmplen]=rk[j];
}
sort(tmp+1,tmp+tmplen+1);
ans=(qu[i].r-qu[i].l+1)*(qu[i].r-qu[i].l+2)/2;
for(int j=1;j<=tmplen;j++){
int max_x=0;
int l=(ll[tmp[j]]==0)?-1:ll[tmp[j]];
int r=(rr[tmp[j]]==INF)?-1:rr[tmp[j]];
if(j!=1)l=max(l,tmp[j-1]);
//cout<<l<<" "<<r<<"?\n";
if(l!=-1)max_x=max(max_x,query(l,tmp[j]-1));
if(r!=-1)max_x=max(max_x,query(tmp[j],r-1));
//cout<<"?\n";
//if(max_x)cout<<max_x<<"??\n";
ans-=max_x;
//cout<<max_x<<"\n";
}
//cout<<qu[i].siz<<"?\n";
cout<<ans<<"\n";
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Dangerous Syscalls
input:
aadccabccdcddcdabbbdbdaabcadbcadcccdcadbadaabaaacbacdcdccdcdabbbdbdaadcabdabdbacabdadadbdadbdcddbcbcbaddaaaabccdaddcaaabdbabbcabdbcdccaaddbdcdbbcaccdababdbbdabdcbcccacbddddaacbaccaacadbdbdcabc 190 acdabdbcdcabbacbdacaccbcaddadabccdaabdcdcbcdaadccadcdcaccdcaadcaaddccddbbbadbadbdcaacccdbbbcbdbabcacacb...
output:
result:
Test #2:
score: 0
Dangerous Syscalls
input:
adbdadddcaddcdaacabadbbbacccaadddcdabaaccbbcbacccbdcdbaabbcbddcdadcabcacccccddbdabbbaacaadcdaddbabcabbbddcdccbaddbbbcdbcabdaaabbdaaadcdacbabccdadbabbdaddcbccddadbdcabcdaabbbabcdacbcaaccabcbaabcbcddcddbbbbaadacbddabbdddabbddbcbdabccbbdacbbdccdbddcdcdcadadbbacbdabbbcddcbadcdddaaabdbbdadddaabbdbaaccdab...
output:
result:
Test #3:
score: 0
Dangerous Syscalls
input:
abbabcabadbcbbccbabdcbbacdddcccddadabcadabaadcaddbaaccacaabcbbbcabbbdcbadbaadccdbbdbaaccadbbabdccbcaabbaaccabcbabbcaacbdbbadadbdcbddbbcddcaaacbadabbaacaadddacbadbbddaabbcaccdbdabbcdbbccadccaadabccdaddcabbabadadabdbbadacadcaacbcdccdccaddaacdccbacadaccdbccddacbdcabadbcbbaaccbbabcddccdaabacbcbdbcbdbddb...
output:
result:
Test #4:
score: 0
Dangerous Syscalls
input:
ddadbccdbdaacdacabdadadcbdbbadddcadbdadddcaddbbacbddddacccccbcabbbdaddcacbbcaaadaaddadadddbadabbadcdbacbdaddadbbbbccdbacaaabcacccdccaaabaddababacdbaccbbbddaabaacadbcddbbcaaccbbbbbdaddaabddbcdbaacbcadbdbccbcbbdacdacbbbcdccadcdbaacbcaadbabadcaccabdddacacabdbcdadccaddcdcaaabcacccbdbdadcbdcabddabbdabdcd...
output:
result:
Test #5:
score: 0
Dangerous Syscalls
input:
bacccaaabdacddbbabdabccbdabddccdbcdcdbdbccbddbbcaaddaacdcaaadcbcaddbabbaddaaaddaaccdcaccacababccaddaccbcacbbdccabaacacdcbccbdbadcdbbbbacacdcbbbbaadbcbaadbcadadbbddbccaadbdbcbabdaacdcdacdbcdbdccdabbacbddabcabccbbabcddbdddcaabbcaddbbdabcaddbbcaadabcbdcabcacdaabbdddadaacbbccdbccdabbdcaddddcccdaaaaddada...
output:
result:
Test #6:
score: 0
Dangerous Syscalls
input:
jmoifvagmonbuxznpdxtcgfycygerridhihasxonifvcorwbbadpyjvgyveicsfcrcjjecfktxuumtvfjxocbgeoeefrzlykfqeaarrlhkjovevehnezlcjikjjjfuxfoclvirrbctlicoitgwnphfzgzepxyejlsijruxxdvzahqjpaqhgcumtjnwkbskyengdgzbtxteacjoyvndwiturrdtlcyccbckhmlfyqohfcjvzhtcuqxxpexkvlckohvidmwkghiijakocqyjskcfoxxzffzgtylbiyythobvdx...
output:
result:
Test #7:
score: 0
Dangerous Syscalls
input:
jxfsgnlqidcnbfleihizzderbbyzminbutjjknmojrymnghyunksfsqtfijisxyxfaygactkupfrpnugcrvhseqxpdiyrzrzanctqtygvhpumvlxwmvduwbysmkzpckcgbjxmlgyfhdpdjqehloisnpilhpshexuljbjlnkcbkjcnpudmycjigdirokeyvcvkmkrsyjbftizewmcfyuxghxqmwmqdvhswdnsjvybvefdnupdkrqcvnlnfbybifdovvapsdjoppvzvkmxjzevqifzclignjponvndafghncmm...
output:
result:
Test #8:
score: 0
Dangerous Syscalls
input:
lbmckmhibhhmgglmcbfkclhacldibgaadakchjabmimjlidhhldljfmkegaieahdbjccdhjefbfebedjiefeflbejkihgjbfgeflchegbamekdlaaacfgabdabmfgjgfmjailbdgbhfbmaaclcidkkgldmejjhcmahhmgkimgfclcgkkalgdcmaiieakmkmflhbdmmibkbkfcjieekbccheahgegkfchfchemgkfghmiabllamichbbdbhjlcfafkijgihgmekhkdebkfbkdagdbhcgjmkamlfhmkjgmfafl...
output:
result:
Test #9:
score: 0
Dangerous Syscalls
input:
uwhchfeaycdqlasqdrbylqxaridtgcmyrmkdfdahthdwvkojhqxacqomockaqqoanitzhkmcgcdvniteghvxiyjrqziqjiuljewrdwaabtqwfrfalgloikpxcllbngrzphwcsdmiflqvznvuvxivxsvpqfgkefowexaoplhqfenuwawvwhtmocrmqifqdbyudhmkgiucudnxbjaucppbzobxpmqufhvexdvyjiefmxlfpczvqiuqucvnryxicvusurdiaavudphnnmfqgtichpwfvpaglqqzlmbwwwjohdgx...
output:
result:
Test #10:
score: 0
Dangerous Syscalls
input:
kimblfhedhamehaaacifgbgflkkldkalaakkhlaiejmeccmcffablhblmggjdmkbhljkkhgfjklieakmkjaamgikmccfkfghljahlkijgjdaechcbifailjcglkkedlgicjebfhiebkfciljkeacceejmkaalhcajfhfmkcecdklbdajdlfikkhiekdbebjbbdfgjcjhfbkclbhbbhjfdffegebkjfkcdilemclilbhflaihgihcgkldcbaakhdjhbekibbigibjdmjbbfalhccmddmckgljfmhgjbalbdjg...
output:
result:
Test #11:
score: 0
Dangerous Syscalls
input:
hpfxngoxndlosbzylksgzehfhkodfvqwwbtwlreetgeusomoymlaukhqqeqhfawfvuqjbwyrtwwjzmrtrnhvibtibiachlutcqbsydmynzxzdrkydyyekbmezwhvvfngnlklzdjpgbpjatahwuvoluqjoefktvlwdtynwprfekbpvgqtwmwneaofpktxfudwpibhlqmiybqbvsfsywlbktjcqvzwxtddkmliwukvkqsdssszsbmtnpynoohpgclvufblcdvqwrpjtuayinwqppbuidyynbpaolisqodbrqqt...
output:
result:
Test #12:
score: 0
Dangerous Syscalls
input:
cdfmjmimggmlmabjlakafafdgkbdkaclfemhajdamjkliajhmajfidkghmejelfkjedddkcgbdidelhghbabckiihdjhdjhakmeldjbikdagdfhalfikeggefcmehhgccilmaehhkagafafaegjgakjekcbhbbjgfhimhmlblgmeddfffdhfgmiacadfhglhjaekdaeacdbfmlcjfffbkcbffljjkbhigejmmmhkaljcljibgekjfhefmbjilcahefblblgeledddgemdgihfecclicgbkmilmifflllhmmc...
output:
result:
Test #13:
score: 0
Dangerous Syscalls
input:
ophmmxojwyabxitozutwdxkmleazyhkqzfhqtdjggpjclzkhcerzmpdkprqjkmnpvccyajlwcohqgzqticihosjhxmwymdzoqnawgmtegjqyrngnqcheacmkgbrwsfldsmlnqjkocblhrnwguaexvnfvrceexfqpzumxsuuhfhdhujqoqdxrkknnhiygrabiqspaqdqreiswbcqdjnyqijdzolltfiiismxltjukwuixllitlyjglwwqekrlbkbwutvnifampunpzmpmwyclwxwgrowvnbqqmkreqhrwgvey...
output:
result:
Test #14:
score: 0
Dangerous Syscalls
input:
lbmafbiicbjcmhbbmbabkgmbafmmhjldiifkmhejgmdcbijilcaidajjjebklkikjdjefalfkemjmbifalacllkcehbgkdkabiiefmhjcimlmckcbebidhddclhhlabdalegkfhcdbejbdmbhbfgelmkfdbkbdaclahbfggijmbgigilebmbijddfkjbafdjghijiibljgclgbciijhmjdhcjelmhiecaiahkhledfbekdlmcdceecckhkebclhilgbikmfgjmjgflmffkdjjkbcaemagedmcjajgikgefga...
output:
result:
Test #15:
score: 0
Dangerous Syscalls
input:
dsppfaesydhozppylwmfzcvsllhggovukeeepvtiodzzdcmlauhymvxijszrobdecuhxjsivtwjtmvphssgvyifmixgddeuofabohugyfnnqbtsjrynkvtvcqkrhwovooktcfwmxagrxgekxdgldaqffybwmdkeykyocudevwdojhcbhipfwclhzmtoyznnbdadomffoaxihkuojezabjppeyzkgwjgcpvuuxvojahfrdeybcklvqwvfftcwkxqfhbddbxfduvitycznkuzgukryyhktzoslzqiiggugpwvr...
output:
result:
Test #16:
score: 0
Dangerous Syscalls
input:
lgcjmilcjkfljihhadhcgcljecggdihjjihgdmbgggmdmfligahflfffcbcmfjlfmamfmcllfgffcciihhcfdihlbgbklmkjacjkhjajhaijifebillabigdeichhklajlechjhbeaiahhidemiaaaehkkaelabbdchficchchdcljbbbdmjfldkmjledjkkhldjjagdimadbdkkmcblkgfbmghieiiaamicjlemabecdemjbbhjjadfhlbaaglbfbbbilljmfjmadcmckfegfalkacbkjkafcgaklgabjkm...
output:
result:
Test #17:
score: 0
Dangerous Syscalls
input:
crouxgkvirnjrytirundlljrgfwtazivrwzxxwditbfcooymmlaqvtisxnwbhhdusjrqtvebvgmuaietaotldzzsrqtplqfucfyjpfrohwraeeufvpetorvakablkyvvnwetsrqjlxhmjwgqekapdrvcymvxdzojvbsvcjqrjsdnimathoxcldskndebsfnoqpwxjiicaqdaxhmfnozvwhezimqwnwaoktflkfpdqyhuwtdtgqanymowveuxayebwbjeliulrglhaxwgmgvgiqwqvrkwetmdvkshxwpobakc...
output:
result:
Test #18:
score: 0
Dangerous Syscalls
input:
hlheiljjdhhlgihkakdbmjjkjbihblhabaaafedcjickgbmimhldcfdgaeaemhheclgeglffkkiklgalagllffkjkkjbkllkgkkbblficjmklljcfallcicmfdflgebfjeacjejeedmimfdeiadbegfkckiaffagigmckdkihdikgilgehmaglhiddljghmfhgikfkgmfkadekgfalhlemfkdeggcdfkhmjdcdabmeebblbgeflbhkcjgdgadlbfmdebkhhhfajjiflejijamgjekelmjhcmakcglmhafdai...
output:
result:
Test #19:
score: 0
Dangerous Syscalls
input:
hcickbjbggigfjddcmijgfbafdebdkcldbibaaegkhmdeibkjdjigbmfelkbdablaccmeblcgikdglmllmdagaaaikfjhdcldhmhmiiiccbhehdhbkjdgkkjhfkflckidfibicfihaagficicjkbiiejddegmcahacchfgmkmmlehbelhlmbkamelfjhkmgfljbaffjjfmfhmhafjhhhdlgfggbilkkcghfaalllcdeffbbjichaiedagaalehkcaglcacgldciahdgehibefmghedciddglfbbmdigdbjij...
output:
result:
Test #20:
score: 0
Dangerous Syscalls
input:
cjhkkbhdfmbagemlcmcdclghhcebjlaikgbdlbkedeckmimkeffkjfljmghahfgeihehlfhicjckhjmidafdkhfgehjdgdclckchjddkglaijcfcmigkgmhkmggelagbkbkikaghbadbfeifkemehhcljcfjeljejeehbklflekflaedfeclhidaahikdfaeljbhbaffkdblmecidjglkddkmecifgccmjkjhjecgaklmemfcfemlfmbkljjbakdhchehfhaelhgkicdbhgddcfjeikimklccbdmccjiilhf...
output:
result:
Test #21:
score: 0
Dangerous Syscalls
input:
acdalbjachemiccjijekjladlmgcdibegjemfggmcajmkdfaicklclhhjjiifdjkglcdieahidalajicmabkejeggmjdacmljghlicficlaidacjegkhgdmalfbgakblgfbglebhjmkccfgkdkcbgddfgcmkkddlmlikljhmcgfddgkfhddkiekkaefbedjhglclfgebfddlbkkadhlahccmbgjagkkchemmhgbcjkcjdgbmbfhmhgckffedkkllkemkegjhbkijhkjmckkgcccebelfdikbfeigdflebkck...
output:
result:
Test #22:
score: 0
Dangerous Syscalls
input:
mddlmgjdadiajebkkjdcfcaemmacbeefbiheblhihlahcilkgcgcgbgbkdddbiedlejkaibalfggglkghmddiiikfabgmggecdmifaegcmkfcmlcfhlecifdiejflclehcbajacmakchcekkiddljfdlejgefbgkgicbdjamafjfgcdmhaejffmdaedaidabihdckhjdkfdclaafcibjfidakllflmejfaeeilaehkicmifjcdiagiihchgefafeaabbihmkddcaembjgjdeljjldagjgghammkfagahdjgb...
output:
result:
Test #23:
score: 0
Dangerous Syscalls
input:
llfdgmcekbmbimkccddilecgmlimhkklijdgcfjcdkblbglbaaegedfeihjfgigigfbajgakjmmafechejfihfmdkidmlfdcejkkielgcakckilmlgiklmlalklfdcgkhlmlhkjbkhmdkbhmbfidfmccicgcbejmklcmelcigfjjiaifebbdimekgaglhejaadaglhahfkmkljkfakaifihfihikecehmafbgicelabajgghlmffhgfciclmhmbfhbkbbffmikkeadafebkjkdcidbgadmiaelbhkegimmbf...
output:
result:
Test #24:
score: 0
Dangerous Syscalls
input:
dhblhcfekgfmbjkhalldhjckleeffihfallgiafelkkehflcmbikdiijmajkeaghlddammajjdffieiidbgedfekciajfflgbgegmfmaljamaliihmjladahiglmkafmiiflcbhbhceimhmhheeidaejgaecmahcmchclijjdjajmkjgjdgkhmljmjlgadflbdkdkgbggdddicllcfkdmajigmglkfcllijleblcaabkajjghhdgkdbllmjhahjecccfhcgmfemljbkamhgbehjkfffaickeagejjhkgmimb...
output:
result:
Test #25:
score: 0
Dangerous Syscalls
input:
iiafeelfecahcjmkadhjkdmmelhmaiafglhiabmlafgmackbbkgfdhdhlageljhmlmehhjgbgkjmbaiffjhcfceiidghmggkhlhkcjdjiehfdcjdlkblgbkcdahgiccjiimggkdlhlkgddbiigbjhbdblbggaealbkldjbfdecmcijdfajlgccfbldbkjmbcmkklfmjfblbhieibecfgjcbchkegbdamflhfjfdgjglkakkgheakegkhlllmhljekmidlhfcmjlgmmajmgjmmlfkhhbklgliejcikjehdijd...