。。不知道是太不熟练还是题目太难,这个题竟然没有什么想法、

想到了二分,但二分的条件是>=,就感觉检验的不太方便、

然后才发现 这个检验是需要dp的、、还可以优化

所以dp是万能算法、、 f【i】表示前i位中最多可以匹配多少个 这样就有一个上下界,

用枚举断点转移就写出dp了:  f【i】=max(f【i-1】,f【j】+i-j)

也可以归为i一类,j一类,就可以单调队列了

下界就是二分的答案,上界跑后缀自动机输出len数组就好了;

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define N 2300000
#include<cstring>
int fu[N],ch[N][3],last,l[N],cnt,f[N],q[N],n,m,i,ll,j,rr,ans;
char str[N];
void jia(int o)
{  int np=++cnt,p=last;l[np]=l[p]+1,last=np;  for(;p&&!ch[p][o];p=fu[p])ch[p][o]=np;  if(p==0)fu[np]=1;  else  {  int q=ch[p][o];  if(l[q]==l[p]+1)fu[np]=q;  else  {  int nq=++cnt;l[nq]=l[p]+1;  for(int i=0;i<=2;i++)ch[nq][i]=ch[q][i];  fu[nq]=fu[q];fu[q]=fu[np]=nq;  for(;ch[p][o]==q;p=fu[p])ch[p][o]=nq;  }  }
}
bool zhao(int L,int len)
{int i,o=1,z1=1,z2=0,lin;for(i=1;i<=len;i++){int zm=str[i]-'0';while(o!=0&&ch[o][zm]==0)o=fu[o];int jl=l[o];f[i]=f[i-1];int lin=min(lin,l[o])+1; o=(o==0?1:ch[o][zm]);if(i-L>=0){   while(z1<=z2&&f[i-L]-(i-L)>=f[q[z2]]-q[z2])--z2;++z2;q[z2]=i-L;  }while(z1<=z2&&q[z1]<i-lin)++z1;if(z1<=z2)f[i]=max(f[i],f[q[z1]]-q[z1]+i);} if(f[len]*10>=len*9)return 1;else return 0;
}
int main()
{cnt=last=1;
scanf("%d%d",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%s",str);
int len=strlen(str);
for(j=0;j<len;j++)jia(str[j]-'0');  jia(2);
}
for(i=1;i<=n;i++)
{scanf("%s",str+1);int len=strlen(str+1);ll=1;rr=len+1;while(ll<rr){int mid=(ll+rr)>>1;if(zhao(mid,len))ans=mid,ll=mid+1;else rr=mid;    }printf("%d\n",ans);
}
}

2017.9.20 cheat 失败总结相关推荐

  1. 《麻省理工科技评论》:2018年18大科技趋势,2017年7大失败技术

    来源:科技周 摘要:2018 年伊始,许多科技大势仍在继续,正如比尔·盖茨所说,"大多数人高估了某种技术的短期价值,低估了其长期价值."同样,大多数的年度预测会高估了一年内一些事件 ...

  2. 2017.12.20 静态网页小实战

    时间:2017.12.20 地点:武汉-学校 项目类型:静态网页-王者荣耀游戏相关网页 制作时间:差不多半个月 主页面html代码: <!doctype html> <html> ...

  3. 2017第20届济南国际机床展览会会刊(参展商名录)

    2017第20届济南国际机床展览会会刊(参展商名录) 展会名称: 2017年第20届济南国际机床展览会 所属展馆: 济南国际会展中心 开展时间: 2017-02-25 至 02-27 参展商名录 请百 ...

  4. 找不到mfc140u.dll或者Microsoft Visual C++ 2017 Redistributable一直安装失败解决

    找不到mfc140u.dll 安装后提示这个问题,我将xshell卸载重新安装后发现安装过程中提示Microsoft Visual C++ 2017 Redistributable一直安装失败,所以问 ...

  5. CBinsight | 分析101个创业失败案例,我们总结了20大失败原因

    从缺乏产品与市场的相配到团队成员的不和,通过分析101个创业失败案例,我们总结了创业失败的前20大原因. 在我们列出创业失败案例清单后,我们收到最频繁的请求之一是我们能否从这些失败案例中提取出他们创业 ...

  6. ​柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 | 焦点

    ▼ 大型年度AI人物评选--2017中国AI英雄风云榜榜单评选出了年度技术创新人物TOP 10:商业创新人物TOP 10,获取完整榜单请关注网易智能公众号(ID:smartman163),回复关键词& ...

  7. 【一周头条盘点】中国软件网(2017.11.20~2017.11.24)

    每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 趋势洞察 阿里云IoT赵磊:ICA联盟,构建未来物联网生态圈 阿里云IoT赵磊表示:阿里ICA 联盟,也称IoT合作伙伴计 ...

  8. CB Insights:分析101个创业失败案例,我们总结了20大失败原因

    [转]http://36kr.com/p/5071038.html 从缺乏产品与市场的相配到团队成员的不和,通过分析101个创业失败案例,我们总结了创业失败的前20大原因. 大数据文摘作品,转载请注明 ...

  9. 2017.10.11 灾难 失败总结

    想了一上午没有结果,主要是因为原图搜索性太强,,就是每个点的影响虽然是固定的,但决策是需要遍历的.. 所以不能抽象成数字拓扑思考,不然同样的影响会被访问多次,却因为目标点的状态不同  而无法继续化简 ...

最新文章

  1. 使用Go语言从零编写PoS区块链
  2. After paper reading.......
  3. Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。
  4. 【数据结构与算法】之深入解析“最好买卖股票的时机含冷冻期”的求解思路与算法示例
  5. windows获取系统补丁+匿名管道
  6. 摄影测量--相对定向-绝对定向(C++实现)
  7. python怎么识别log函数_python中对数函数怎么表示
  8. 802.11相关术语及其设计(二)
  9. 【SCIRLab】ACL20 基于图注意力网络的多粒度机器阅读理解文档建模
  10. c语言用指针取出字节,在C语言中一个指针占用多少字节。
  11. 前端项目总结与分享(PPT整理)
  12. asc怎么用 linux zip_asc文件扩展名,asc文件怎么打开?
  13. 数学分析(1):集合相关公式的证明
  14. 网盘搜索引擎(持续更新中)
  15. composite-id class must implement Serializable
  16. 设备管理 android问号,设备管理器里有问号怎么办
  17. 小米商城——HTML,CSS(附:源码)
  18. sc-RNA seq与Illumina测序
  19. ubuntu下创建手机可用的热点wifi
  20. 淘宝四大经典骗局及防骗技巧

热门文章

  1. Kotlin学习笔记 第四章 Java调用Kotlin
  2. 红橙Darren视频笔记 ViewGroup事件分发分析 基于API27
  3. css开发语言,盘点5大主流CSS框架,你知道哪些
  4. conda报错Collecting package metadata
  5. R语言含中文数据导入的方法
  6. R语言学习笔记(二)处理函数与基本图形绘制
  7. 【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
  8. 数组中的两个常见异常
  9. java 货架高度摆放最优算法_商铺内部空间摆放竟暗藏玄机
  10. pyqt5 判断lineedit是否为空_是否注意过 isEmpty 和 isBlank 区别?