当前位置: 首页 > news >正文

山西网站建设价格东莞报告1例

山西网站建设价格,东莞报告1例,个人网站能不能做论坛,discuz 轉wordpress文章目录题目描述解析代码题目描述 解析 显然应该要尝试套kmp的板子 关键是如何套 也就是那个判断匹配的条件是什么的问题 本题的关键是当kmp匹配时#xff0c;匹配位之前的所有位大小关系的顺序都是匹配的#xff0c;所以我们只需要看当前位即可 考虑对b预处理出3个数组匹配位之前的所有位大小关系的顺序都是匹配的所以我们只需要看当前位即可 考虑对b预处理出3个数组 id1[i][1,i-1]中与i相等的最靠右的数与i的距离 id2[i][1,i-1]中比i小的最大的数中最靠右的与i的距离 id3[i][1,i-1]中比i大的最小的数中最靠右的与i的距离 其实不是最靠右也可以啦只是最靠右容易求 对于”最靠右“的条件我们可以先顺序对每个值做一个栈记录这个值出现过的位置然后逆序求每次再把自己的值对应的栈弹出一个首元素 “比i小的最大”这样的条件我们可以以值域为关键字建一个双向链表把一开始就没有的和弹出没有了的值都删除掉直接找 l 或 r 指针即可 然后就是这个判断。 假设当前A匹配到了[i-j1,i],B数组匹配到了[1,j] 利用这三个数组有三个对A失配的条件 若id1[j]存在且a[i1-id1[j1]]!a[i1]则失配 若id2[j]存在且a[i1-id2[j1]]a[i1]则失配 若id3[j]存在且a[i1-id3[j1]]a[i1]则失配 这个画画图还是不难理解的这是一个充要条件 问题得到解决 代码 #includebits/stdc.h using namespace std; #define ll long long typedef unsigned long long ull; const int N 1e6100; const int M1e75; const int mod1e97; int n,m; int s; int a[N],b[N]; int id1[N],id2[N],id3[N]; vectorintzhan[N]; int top[N]; int l[N],r[N]; void build(){for(int i1;is;i){l[i]i-1;r[i]i1;}l[s1]s;r[0]1; } void del(int x){l[r[x]]l[x];r[l[x]]r[x];} int ask(int x,int y){return xy?x:0;}int p[N]; int ans,st[N]; void solve(){p[1]0;for(int i1,j0;im;i){while(j((ask(id1[j1],j1)b[i1-id1[j1]]!b[i1])||(ask(id2[j1],j1)b[i1-id2[j1]]b[i1])||(ask(id3[j1],j1)b[i1-id3[j1]]b[i1]))) jp[j];if(!((ask(id1[j1],j1)b[i1-id1[j1]]!b[i1])||(ask(id2[j1],j1)b[i1-id2[j1]]b[i1])||(ask(id3[j1],j1)b[i1-id3[j1]]b[i1]))) j;p[i1]j;//printf(i%d p%d\n,i1,j);} } void kmp(){for(int i0,j0;in;i){while(j((ask(id1[j1],j1)a[i1-id1[j1]]!a[i1])||(ask(id2[j1],j1)a[i1-id2[j1]]a[i1])||(ask(id3[j1],j1)a[i1-id3[j1]]a[i1]))){//printf( i1%d j%d %d: %d!%d? %d: %d%d? %d: %d%d? \n,i1,j,ask(id1[j1],j1),a[i1-id1[j1]],a[i1],ask(id1[j1],j1),a[i1-id2[j1]],a[i1],ask(id2[j1],j1),a[i1-id1[j1]],a[i1]);jp[j];} if(!((ask(id1[j1],j1)a[i1-id1[j1]]!a[i1])||(ask(id2[j1],j1)a[i1-id2[j1]]a[i1])||(ask(id3[j1],j1)a[i1-id3[j1]]a[i1]))) j;//printf(i%d p%d\n,i1,j);if(jm){st[ans]i1-m1;jp[j];}} } int main(){scanf(%d%d%d,n,m,s);for(int i1;in;i) scanf(%d,a[i]);for(int i1;im;i) scanf(%d,b[i]);for(int i1;is;i){zhan[i].push_back(0);//zhan[i][0]0;}for(int i1;im;i){zhan[b[i]].push_back(i);//zhan[b[i]][top[b[i]]]i;top[b[i]];}build();for(int i1;is;i){if(!top[i]) del(i);}for(int im;i1;i--){int xl[b[i]],yr[b[i]];if(x) id2[i]i-zhan[x][top[x]];if(ys) id3[i]i-zhan[y][top[y]];if(!--top[b[i]]) del(b[i]);else id1[i]i-zhan[b[i]][top[b[i]]];//printf(i%d id1%d id2%d id3%d\n,i,id1[i],id2[i],id3[i]);}solve();kmp();printf(%d\n,ans);for(int i1;ians;i){printf(%d\n,st[i]);}return 0; } /* 9 6 10 5 6 2 10 10 7 3 2 9 1 4 4 3 2 16 4 10 3 5 2 7 1 9 3 8 2 10 */
http://www.pierceye.com/news/359865/

相关文章:

  • 移动端网站模板专业建站工作室
  • 企业网站建设的重要性及意义建设银行忘记密码网站首页
  • 易雅达网站建设公司广告设计公司设计收费标准
  • 行业门户网站php网站开发程序
  • 广州微信网站建设报价表上海注销营业执照流程
  • 陕西省建设执业资格注册中心网站科技有限公司 翻译
  • 做推广都有哪些网站网站怎么上传源码
  • discuz门户网站模板手机电子商务网站规划书范文
  • vps能同时做网站同时做其它事吗wordpress 支持小工具
  • 网站建设制作网络公司wordpress 汽车模板
  • 有哪些做外贸的网站网站快速搭建平台
  • wordpress搜索代码制做优化精灵
  • 连云港做网站推广东莞seo
  • 专业网站设计公司和普通设计公司的区别微信分销网站建设
  • 青海个人旅游网站建设网站建设教程软件下载
  • 做AMC12的题的网站龙华网站建设专业公司
  • 莱州网站制作友情链接交换形式
  • 如何编写网站做美食类网站现状
  • 一站式推广平台做家装模型的效果图网站
  • 企业电子商务网站开发实验报告苏州建筑设计公司排名
  • 网站的优化与网站建设有关吗网站先做移动站在做pc站可行吗
  • 河北网站制作公司电话建设网站的情况说明
  • 高校网站平台建设wordpress小工具不见了
  • 网站建设 会计处理北京垡头网站建设公司
  • 唐山网站制作案例网站建设中标
  • 网站开发培训费济南网络优化推广公司哪家好
  • 谷歌网站优化可以做物理题的网站
  • 公司的网站建设是什么部门品牌餐饮加盟网站建设
  • 深圳品牌网站建设公司哪家好学建网站 必须学那些知识
  • 国内设计网站推荐山东省建设安全生产协会网站