Codeforces 778A:String Game(二分暴力)
2024-09-01 02:13:25
http://codeforces.com/problemset/problem/778/A
题意:给出字符串s和字符串p,还有n个位置,每一个位置代表删除s串中的第i个字符,问最多可以删除多少个字符使得s串依旧包含p串。
思路:想到二分,以为二分做法依旧很暴力。但是别人的做法确实就是二分暴力搞啊。
枚举删除字符数,然后判断的时候如果s串包含p串,那么可以往右区间找,否则左区间找。
#include <bits/stdc++.h>
using namespace std;
#define N 200010
char s[N], p[N];
int id[N], vis[N], n, m; bool check(int x) {
memset(vis, , sizeof(vis));
for(int i = ; i <= x; i++) vis[id[i]] = ;
for(int i = , cnt = ; i <= n; i++) {
if(vis[i]) continue;
if(p[cnt] == s[i]) cnt++;
if(cnt == m + ) return true;
}
return false;
} int main() {
scanf("%s %s", s + , p + );
n = strlen(s + ), m = strlen(p + );
for(int i = ; i <= n; i++) scanf("%d", &id[i]);
int l = , r = n, ans = ;
while(l <= r) {
int mid = (l + r) >> ;
if(check(mid)) {
ans = mid; l = mid + ;
} else r = mid - ;
}
printf("%d\n", ans);
return ;
}
最新文章
- 探讨Android中的内置浏览器和Chrome
- wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul
- 手机号 和 email 的正则匹配
- 最近win7更新后出现第二次打开IDE(delphi2007)的时候提示无法打开";EditorLineEnds.ttr";这个文件
- 如何快速重置OUTLOOK2013,2016到初始配置状态,outlook 修改数据文件位置
- js中的异常处理try...catch使用介绍
- 判断iPhone和iPad 判断设备版本
- redis的简单使用
- 动态SQL的执行,注:exec sp_executesql 其实可以实现参数查询和输出参数的
- SQL 语句整理
- B - 畅通工程(并查集)
- 《JS中的面向对象技术》
- git命令行常用几个指令(细节问题)
- 机器学习——KMeans聚类,KMeans原理,参数详解
- layui布局器网站工具
- System Generator 生成IP核在Vivado中进行调用
- AngularJS中写一个包裹HTML元素的directive
- Convert Expression to Reverse Polish Notation
- SpringBoot-定制banner
- SpringBoot扫描包提示找不到mapper的问题
热门文章
- eclipse 配置maven tomcat 环境
- MIS的趋势必定是围绕机器取代人手,分工越来越细(小餐厅都支持微信自助点餐,结账时就打个折,相当于省了1、2个人手,SQL发明以后,程序员的工作更多了)
- 通通玩blend美工(6)上——仿iPhone滚动选择器的ListBox(UI设计)
- php 将一个二维数组中两个相同的value 相同 指定值相加
- 【全面解禁!真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid &; Canvas &;StackPanel &;Wrappanel)
- WPF将点列连接成光滑曲线——贝塞尔曲线
- Win8 Metro(C#)数字图像处理--2.71Sigma平滑滤波器
- android adb socket 通信
- ArchLinux 安装记录
- wsl相关总结