• 题意:给你\(n\)个字符串,\(s_1,s_2,...,s_n\),对于\(i(1\le i\le n)\),找到最大的\(i\),并且满足\(s_j(1\le j<i)\)不是\(s_i\)的子串.

  • 题解:直接\(O(n^2)\)然后跑kmp匹配,这里注意要剪枝,不然会T,也就是说对于前\(i-1\)个串,如果它是后面某个串的子串,那么我们就不用对它跑kmp,因为它后面的某个串包含了它.

  • 代码:

    int t;
    int n;
    string s[N];
    int ne[N];
    bool st[N]; int main() {
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>t;
    int cnt=1;
    while(t--){
    cin>>n;
    me(st,false,sizeof(st));
    for(int i=1;i<=n;++i){
    cin>>s[i];
    s[i]=" "+s[i];
    }
    int ans=-1;
    for(int i=1;i<=n;++i){
    for(int j=1;j<i;++j){
    if(st[j]) continue;
    string p=s[j];
    string ss=s[i];
    bool flag=false;
    for(int k=2,t=0;k<(int)p.size();++k){
    while(t!=0 && p[k]!=p[t+1]) t=ne[t];
    if(p[k]==p[t+1]) t++;
    ne[k]=t;
    } for(int k=1,t=0;k<(int)ss.size();++k){
    while(t!=0 && ss[k]!=p[t+1]) t=ne[t];
    if(ss[k]==p[t+1]) t++;
    if(t==(int)p.size()-1){
    flag=true;
    st[j]=true;
    break;
    }
    }
    if(!flag){
    ans=max(ans,i);
    break;
    }
    }
    }
    cout<<"Case #"<<cnt<<": "<<ans<<endl;
    cnt++;
    }
    return 0;
    }

最新文章

  1. C语言的一些小知识
  2. Java基础之网络编程
  3. 编译Android系统源码(高通平台)
  4. hdu5481 Desiderium
  5. Effective C++ -----条款49:了解new-handler 的行为
  6. InLineHookSSDT
  7. POJ 1068 AC 2014-01-07 15:24 146人阅读 评论(0) 收藏
  8. python笔记之编程风格大比拼
  9. TCP三次握手和四次挥手具体解释
  10. hdu-4471-Homework-矩阵快速幂+优化加速
  11. 跨域问题解决方案(HttpClient安全跨域 &amp; jsonp跨域)
  12. HttpServletResponse addHeader() 与 setHeader() 区别
  13. 2017面向对象程序设计(Java)第二周学习总结
  14. JAVA并发编程学习笔记------锁顺序死锁
  15. mysql 常用字段类型
  16. [原]Jenkins(四)---Jenkins添加密钥对
  17. 解决cocos2dx调用removeFromParent后报错问题
  18. Row_number 详解
  19. 冥想_ PHP抽奖程序概率算法
  20. 在vs2012中使用installShield2015打包程序

热门文章

  1. 【Linux】如何查找命令及历史记录history
  2. QPainter 绘制图像接口
  3. Python3.9的http.client.py下的HTTPMessage类中的方法getallmatchingheaders的bug修复建议
  4. Ubuntu对接GlusterFS
  5. Boyer-Moore 投票算法
  6. Linux 技巧:让进程在后台运行更可靠的几种方法
  7. detect data races The cost of race detection varies by program, but for a typical program, memory usage may increase by 5-10x and execution time by 2-20x.
  8. postgresql 知识的整理
  9. 你应该了解的25个JS技巧
  10. 从输入URL到页面展示,这中间都发生了什么?