• hdu 5510 Bazinga(暴力)


    Problem Description
    Ladies and gentlemen, please sit up straight.
    Don't tilt your head. I'm serious.


    For n given strings S1,S2,⋯,Sn, labelled from 1 to n, you should find the largest i (1≤i≤n) such that there exists an integer j (1≤j<i) and Sj is not a substring of Si.
    
    A substring of a string Si is another string that occurs in Si. For example, ``ruiz" is a substring of ``ruizhang", and ``rzhang" is not a substring of ``ruizhang".
     
    Input
    The first line contains an integer t (1≤t≤50) which is the number of test cases.
    For each test case, the first line is the positive integer n (1≤n≤500) and in the following n lines list are the strings S1,S2,⋯,Sn.
    All strings are given in lower-case letters and strings are no longer than 2000 letters.
     
    Output
    For each test case, output the largest label you get. If it does not exist, output −1.
     
    Sample Input
    4
    5
    ab
    abc
    zabc
    abcd
    zabcd
    4
    you
    lovinyou
    aboutlovinyou
    allaboutlovinyou
    5
    de
    def
    abcd
    abcde
    abcdef
    3
    a
    ba
    ccc
    Sample Output
    Case #1: 4
    Case #2: -1
    Case #3: 4
    Case #4: 3
     
    Source
     

     题意:你需要找到一个最大的i使得,存在一个在他前面的字符串不是他的子串

    直接暴力也能过,这是区域赛吗?

     1 #pragma comment(linker, "/STACK:1024000000,1024000000")
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<math.h>
     7 #include<algorithm>
     8 #include<queue>
     9 #include<set>
    10 #include<bitset>
    11 #include<map>
    12 #include<vector>
    13 #include<stdlib.h>
    14 #include <stack>
    15 using namespace std;
    16 #define PI acos(-1.0)
    17 #define max(a,b) (a) > (b) ? (a) : (b)
    18 #define min(a,b) (a) < (b) ? (a) : (b)
    19 #define ll long long
    20 #define eps 1e-10
    21 #define MOD 1000000007
    22 #define N 506
    23 #define M 2006
    24 #define inf 1e12
    25 int n;
    26 char s[N][M];
    27 int vis[N];
    28 int main()
    29 {
    30    int t;
    31    int ac=0;
    32    scanf("%d",&t);
    33    while(t--){
    34       memset(vis,0,sizeof(vis));
    35       scanf("%d",&n);
    36       int ans=-1;
    37       for(int i=1;i<=n;i++){
    38          scanf("%s",s[i]);
    39          for(int j=i-1;j>=1;j--){
    40             if(vis[j]) continue;
    41             if(strstr(s[i],s[j])==0) ans=i;
    42             else vis[j]=1;
    43          }
    44       }
    45       
    46       printf("Case #%d: ",++ac);
    47       
    48       if(ans==-1){
    49          printf("-1
    ");
    50       }else{
    51          printf("%d
    ",ans);
    52       }
    53    }
    54     return 0;
    55 }
    View Code
  • 相关阅读:
    使用 Python 自动键鼠操作实现批量截图 并用工具转成 pdf 文档
    Nginx 常用屏蔽规则
    php 分页中间省略
    php word转pdf 读取pdf内容
    微信公众号发送客服消息
    php ip 城市(百度地图)
    php CURL
    微信网页分享-1.6.0版本
    mamp 安装php扩展
    php查询所有文件
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/4982581.html
Copyright © 2020-2023  润新知