zoukankan      html  css  js  c++  java
  • codeforces 349 div2.c

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <set>
     4 #include <iostream>
     5 #include <map>
     6 #include <math.h>
     7 #include <algorithm>
     8 using namespace std;
     9 typedef long long ll;
    10 const int N = 1000005;
    11 const double pi= 3.14159265358979323846264;
    12 bool val[10009];
    13 set<string>ans;
    14 
    15 int main()
    16 {
    17     //freopen("in.txt","r",stdin);
    18    string s;
    19     cin>>s;
    20     int l=s.length();
    21     val[l]=true;
    22     for(int i=l-1;i>4;i--){
    23         if(val[i+2]){
    24             string t=s.substr(i,2);//直接求子串
    25             if(s.find(t,i+2)!=i+2||val[i+5]){//find表示从i+2位置开始找第一个与t相等字符串的位置
    26                 val[i]=true;
    27                 ans.insert(t);
    28             }
    29         }
    30           if(val[i+3]){
    31             string t=s.substr(i,3);
    32             if(s.find(t,i+3)!=i+3||val[i+5]){
    33                 val[i]=true;
    34                 ans.insert(t);
    35             }
    36         }
    37 
    38     }
    39 cout<<ans.size()<<endl;
    40 set<string>::iterator it;//set是自动去重并安字典序排序orz高大上,输出方式也高大上
    41 for( it=ans.begin();it!=ans.end();it++)
    42    cout<<it->c_str()<<endl;
    43 
    44     return 0;
    45 }
  • 相关阅读:
    【[CQOI2015]选数】
    杜教筛
    【[CQOI2009]跳舞】
    【简单的数学题】
    【[SDOI2013]泉】
    【[AHOI2013]差异】
    【[HEOI2016/TJOI2016]序列】
    【[SDOI2008]Sandy的卡片】
    linux系统编程之信号(一)
    linux系统编程之进程(五)
  • 原文地址:https://www.cnblogs.com/shimu/p/5540382.html
Copyright © 2011-2022 走看看