zoukankan      html  css  js  c++  java
  • Codeforces Round #402 (Div. 2) D. String Game 二分

    D. String Game

    链接:

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

    代码 :

     1 #include <map>
     2 #include <set>
     3 #include <cmath>
     4 #include <queue>
     5 #include <stack>
     6 #include <cstdio>
     7 #include <string>
     8 #include <vector>
     9 #include <cstring>
    10 #include <iostream>
    11 #include <algorithm>
    12 #include <functional>
    13 using namespace std;
    14 #define rep(i,a,n) for (int i=a;i<=n;i++)
    15 #define per(i,a,n) for (int i=n;i>=a;i--)
    16 #define pb push_back
    17 #define mp make_pair
    18 #define all(x) (x).begin(),(x).end()
    19 #define fi first
    20 #define se second
    21 #define SZ(x) ((int)(x).size())
    22 typedef vector<int> VI;
    23 typedef long long ll;
    24 typedef pair<int, int> PII;
    25 const ll mod = 1e9 + 7;
    26 const int inf = 0x3f3f3f3f;
    27 const double eps = 1e-7;
    28 // head
    29 
    30 const int maxn = 2e5 + 7;
    31 int a[maxn];
    32 char p[maxn], t[maxn], s[maxn];
    33 int len;
    34 
    35 bool check(int k) {
    36     rep(i, 1, len) s[i] = t[i];
    37     rep(i, 1, k) s[a[i]] = ' ';
    38     int j = 1;
    39     rep(i, 1, len) {
    40         if (s[i] == p[j]) j++;
    41         if (j > strlen(p + 1)) return true;
    42     }
    43     return false;
    44 }
    45 
    46 int main() {
    47     scanf("%s%s", t + 1, p + 1);
    48     len = strlen(t + 1);
    49     rep(i, 1, len) scanf("%d", a + i);
    50     int l = 0, r = len, ans = 0;
    51     while (l <= r) {
    52         int mid = (l + r) / 2;
    53         if (check(mid))  l = mid + 1, ans = mid;
    54         else r = mid - 1;
    55     }
    56     cout << ans << endl;
    57     return 0;
    58 }
  • 相关阅读:
    第九周
    第八周
    第七周
    代码复审核查表
    对软件开发的理解
    第六周
    网站流量分析架构及实现
    hive的sql语句
    精简客户端搭建Oracle数据库
    idaa搭建maven发布tomcat
  • 原文地址:https://www.cnblogs.com/baocong/p/6445629.html
Copyright © 2011-2022 走看看