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

重庆长寿网站设计公司推荐泉州建设企业网站

重庆长寿网站设计公司推荐,泉州建设企业网站,二级网站建设规范,网站积分方案UVA1449 Dominating Patterns 题解 板子题诶。 解法 AC 自动机模板题#xff0c;因为数据范围比较小#xff0c;所以不加拓扑排序优化建图即可通过本题。这里简单介绍一下拓扑排序优化建图。 在查找时#xff0c;每次都暴力的条 f a i l fail fail 指针是很消耗时间的因为数据范围比较小所以不加拓扑排序优化建图即可通过本题。这里简单介绍一下拓扑排序优化建图。 在查找时每次都暴力的条 f a i l fail fail 指针是很消耗时间的查找到了一个字符串可能意味着找到了多个字符串例如我们有两个模式串 bc 和 abc我们找到了串 abc这同时意味着我们找到了串 bc如果每次都去跳失配边的话效率过低我们可以在找到一个模式串后打标记最后进行拓扑排序求得最后的答案。 为什么可以使用拓扑排序 因为失配边都是有向边而失配边的起点一定比终点深度要深而且不会存在自环。所以所有失配边所构成的图是一个有向无环图。 另外这里建图不用真的把边都建出来统计一下入度就行。 代码 #includebits/stdc.h namespace fast_IO {/*** 快读快写。*/ }; using namespace fast_IO; class AC_auto { private:#define LEN 1000001#define N 200int a[LEN][26],val[LEN],flag[LEN],fail[LEN],ind[LEN],cnt,tmp;int ans[N],map[N];std::dequeint q; public:inline AC_auto(){memset(fail,0,sizeof(fail)),memset(val,0,sizeof(val)),memset(flag,0,sizeof(flag));memset(a,0,sizeof(a)),memset(ind,0,sizeof(ind));memset(ans,0,sizeof(ans)),memset(map,0,sizeof(map));cnt1;}inline void clear(){for(int i0;icnt;i) memset(a[i],0,sizeof(a[i])),val[i]flag[i]fail[i]ind[i]0;memset(ans,0,sizeof(ans)),memset(map,0,sizeof(map));cnt1;}inline void build(){for(int i0;i26;i) a[0][i]1;q.push_back(1);while(!q.empty()){tmpq.front();q.pop_front();for(int i0;i26;i)if(a[tmp][i])fail[a[tmp][i]]a[fail[tmp]][i],ind[fail[a[tmp][i]]],q.push_back(a[tmp][i]);else a[tmp][i]a[fail[tmp]][i];}}inline void add(std::string st,int pos){int now1;for(int i0;ist.size();i){if(!a[now][st[i]-a]) a[now][st[i]-a]cnt;nowa[now][st[i]-a];}if(!flag[now]) flag[now]pos;map[pos]flag[now];}inline void ask(std::string st){int now1;for(int i0;ist.size();i) nowa[now][st[i]-a],val[now];}inline void topo_sort(){for(int i1;icnt;i) if(!ind[i]) q.push_back(i);while(!q.empty()){tmpq.front(),q.pop_front();ans[flag[tmp]]val[tmp],val[fail[tmp]]val[tmp];if(!(--ind[fail[tmp]])) q.push_back(fail[tmp]);}}inline std::vectorint output(const int l,const int r){std::vectorint ret;int maxi0;for(int il;ir;i)if(ans[map[i]]maxi) maxians[map[i]],ret.clear(),ret.push_back(i);else if(ans[map[i]]maxi) ret.push_back(i);outmaxi\n;return ret;} }; AC_auto ac_auto; int n; std::string s,t[200]; std::vectorint v; int main() {while(1){inn;if(n0) break;ac_auto.clear();for(int i1;in;i) int[i],ac_auto.add(t[i],i);ac_auto.build(),ins,ac_auto.ask(s),ac_auto.topo_sort(),vac_auto.output(1,n);for(int i0;iv.size();i) outt[v[i]]\n;}fwrite(Ouf,1,p3-Ouf,stdout),fflush(stdout);return 0; }
http://www.w-s-a.com/news/324164/

相关文章:

  • 湖州网站seo优化网站改域名备案
  • dedecms怎么制作网站合肥电商网站开发
  • 网站开发通用流程图做flash的网站
  • 营销型网站有哪些平台网站建设藤设计
  • 网站需求分析网站建设美食网站建设多少钱
  • 有专门做网站的吗建德网站
  • 做网站要买服务器吗单页设计思路
  • 一 电子商务网站建设规划网站开发前端框架和后端框架
  • 自助网站建设系统软件自己免费建设网站
  • 百度微建站access如何与网站连接数据库
  • ppt素材免费网站网站正能量晚上免费软件
  • 个人淘宝客网站如何备案搭建一个平台要多少钱
  • nginx 网站建设淘客网站怎么做首页
  • 网站制作的基本步骤是手机网站建设 新闻
  • 水墨 网站源码工装
  • 任丘网站建设服务网站 建设原则
  • 长沙做一个网站要多少钱网站底部备案代码
  • wordpress构建自定义设置页面seo培训学什么
  • 延安有哪些做网站的公司如何建设网站?
  • 网站建设者属于广告经营者吗网站管理程序
  • 网站内容优化方法深圳市宝安区怎么样
  • 视频网站开发视频公司网站制作多少钱
  • 单页简洁手机网站模板购物软件
  • 素材网站官网低价网站建设费用预算
  • 苏州网站设计kgwl个人网站有什么外国广告做
  • 浙江省网站建设报价简单网站开发工具
  • 物流网站的建设wordpress电视直播插件下载
  • 简述网站开发流程青岛做网站建设价格低
  • 网站开发的业务需求分析杭州推广公司
  • 网站建设技术实现难点app开发需要哪些软件