• Codeforces Round #402 (Div. 2)D. String Game 二分


    题目链接:

    http://codeforces.com/contest/779/problem/D

    题意:

    给两个串,给出删掉第一个串的第几位的序列,问 最多能删除几次 使得第二个串还是第一个的子序列

    题解:

    二分 KMP不会= =
    就照着没用kmp的人 写了一下 当时没敢写 md !

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 #define MS(a) memset(a,0,sizeof(a))
     5 #define MP make_pair
     6 #define PB push_back
     7 const int INF = 0x3f3f3f3f;
     8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;
     9 inline ll read(){
    10     ll x=0,f=1;char ch=getchar();
    11     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    12     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    13     return x*f;
    14 }
    15 //////////////////////////////////////////////////////////////////////////
    16 const int maxn = 2e5+10;
    17 
    18 string s1,s2,s3;
    19 int c[maxn];
    20 
    21 bool check(int l1,int l2){
    22     int i=0,j=0;
    23     while(i<l1 && j<l2){
    24         if(s1[i]==s2[j])
    25             j++;
    26         i++;
    27     }
    28     if(j == l2)
    29         return true;
    30     else
    31         return false;
    32 }
    33 
    34 int main(){
    35     cin >> s1 >> s2;
    36     int len1 = s1.size();
    37     for(int i=0; i<len1; i++){
    38         int x; cin >> x;
    39         c[i] = --x;
    40     }
    41 
    42     s3 = s1;
    43     int len2 = s2.size();
    44     int ans = 0;
    45     int le=0,ri=len1;
    46     while(le<=ri){
    47         int mid = (le+ri)/2;
    48         for(int i=0; i<mid; i++){
    49             s1[c[i]] = '*';
    50         }
    51 
    52         if(check(len1,len2)){
    53             ans = max(mid,ans);
    54             le = mid+1;
    55         }else{
    56             ri = mid-1;
    57         }
    58         for(int i=0; i<mid; i++){
    59             s1[c[i]] = s3[c[i]];
    60         }
    61     }
    62 
    63     cout << ans << endl;
    64 
    65     return 0;
    66 }
  • 相关阅读:
    windows窗口消息内部处理机制
    iPhone and iPad Development GUI Kits, Stencils and Icons
    【转】windbg 调试经典文章(常用)
    atl和mfc
    开发IDA pro图形界面插件
    ida常用插件
    为Visual studio 2008 添加汇编工程模板
    常用软件汇总
    BOOL EnumInternetExplorer( ProcessWebBrowser pHander )
    同年龄的牛人博客
  • 原文地址:https://www.cnblogs.com/yxg123123/p/6827684.html
Copyright © 2020-2023  润新知