apio 反对称

这个题没想到后面还用二分(而且还有这种二分操作。。。。。) 我太弱了--------- (二分循环节出现位置) 好像可以用马拉车做,复杂度还更优一点。。。。 反正不会。。。。。 #include<cstdio> #include<cstring> #include<map> #include<string> #include<iostream> #include<cmath> #include<algorithm> using namespace std; //可以翻转 int k; int n; char a[500005]; long long pf[500005],has1[500005],has2[500005],has3[500005],p=23333,sum=0;//正着,反着 long cal1(int x,int y){ return has1[y]-has1[x-1]*pf[y-x+1]; } long cal2(int x,int y){ return has2[x]-has2[y+1]*pf[y-x+1]; } long cal3(int x,int y){ return has3[y]-has3[x-1]*pf[y-x+1]; } long long check(int x){ int l=1,r=min(x,n-x); while(l<=r){ int mid=(l+r)/2; //cout<<' '<<x-mid>>n; for(int i=0;i<n>>a[i]; if(a[i]=='1')k=i; } has1[0]=has2[n]=0; for(int i=1;i<=n;i++){ has1[i]=has1[i-1]*p+a[i-1]-'0'; } for(int i=n;i>=1;i--){ has2[i]=has2[i+1]*p+a[i-1]-'0'; } for(int i=1;i<=n;i++){ has3[i]=has3[i-1]*p+a[k]-'0'; } /*for(int i=1;i<=10;i++){ int l,r; cin>>l>>r; cout<</n></x-mid></algorithm></cmath></iostream></string></map></cstring></cstdio>
全部评论

相关推荐

🎓学历背景:双非土木硕👨‍💻意向职位:AI应用开发大佬们可以帮我看看简历吗,秋招至今0offer
秋招结束再玩瓦:今年科班都不好找哇……你可以试试交叉岗,比如制造业国企的一些开发算法,或者互联网的边缘岗,it技术支持,运维这些
我的简历长这样
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-13 10:17
门头沟学院 Java
昨天面美团,jvm,juc问的好深啊,感觉小林coding不太够喔,牛油们有没有什么推荐的八股网站嘛🕒&nbsp;岗位/面试时间👥&nbsp;面试题目🤔&nbsp;面试感受
明天不下雨了:小林Coding:https://xiaolincoding.com/ 全栈哥:https://www.pdai.tech/ Guide哥:https://javaguide.cn/ 秀哥:https://interviewguide.cn/ 沉默王二:https://javabetter.cn/home.html 磊哥:https://www.javacn.site/interview/basic/ 小傅哥:https://bugstack.cn/ 源码哥:https://doocs.github.io/source-code-hunter/#/ 各大厂的公众号技术文章和一些经典的书籍
面试太紧张了怎么办?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务