CodeForces 779D. String Game(二分答案)
题目链接:http://codeforces.com/problemset/problem/779/D
题意:有两个字符串一个初始串一个目标串,有t次机会删除初始串的字符问最多操作几次后刚好凑不成目标串
所得结果减1
其实简单匹配只需要n只要二分查找一下答案那么结果就是n*logn
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
const int M = 2e5 + 10;
string p , t;
int a[M] , l , r , mid;
bool vis[M];
bool find(int pos) {
int len = t.size() , len2 = p.size();
int count = 0;
for(int i = 0 ; i < len ; i++) {
if(i <= mid) {
vis[a[i] - 1] = false;
}
else {
vis[a[i] - 1] = true;
}
}
for(int i = 0 ; i < len ; i++) {
if(vis[i]) {
if(t[i] == p[count]) {
count++;
}
}
if(count == len2)
return true;
}
return false;
}
int main() {
cin >> t >> p;
int len = t.size();
for(int i = 0 ; i < len ; i++) {
cin >> a[i];
vis[i] = true;
}
l = 0 , r = len - 1;
while(l <= r) {
mid = (l + r) >> 1;
int flag = find(mid);
if(flag) {
l = mid + 1;
}
else {
r = mid - 1;
}
}
cout << r + 1 << endl;
return 0;
}
CodeForces 779D. String Game(二分答案)的更多相关文章
- [Codeforces 1199C]MP3(离散化+二分答案)
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r ...
- 779D. String Game 二分 水
Link 题意: 给出两字符串$a$,$b$及一个序列,要求从前往后按照序列删掉$a$上的字符,问最少删多少使$b$串不为a的子串 思路: 限制低,直接二分答案,即二分序列位置,不断check即可. ...
- Codeforces 772A Voltage Keepsake - 二分答案
You have n devices that you want to use simultaneously. The i-th device uses ai units of power per s ...
- 2018.12.08 codeforces 939E. Maximize!(二分答案)
传送门 二分答案好题. 题意简述:要求支持动态在一个数列队尾加入一个新的数(保证数列单增),查询所有子数列的 最大值减平均值 的最大值. 然而网上一堆高人是用三分做的. 我们先考虑当前的答案有可能由什 ...
- Educational Codeforces Round 21 Problem F (Codeforces 808F) - 最小割 - 二分答案
Digital collectible card games have become very popular recently. So Vova decided to try one of thes ...
- CodeForces - 779D String Game 常规二分
题意:给你两个串,S2是S1 的一个子串(可以不连续).给你一个s1字符下标的一个排列,按照这个数列删数,问你最多删到第几个时S2仍是S1 的一个子串. 题解:二分删掉的数.判定函数很好写和单调性也可 ...
- CodeForces - 779D String Game(二分)
Little Nastya has a hobby, she likes to remove some letters from word, to obtain another word. But i ...
- Codeforces 799D. String Game 二分
D. String Game time limit per test:2 seconds memory limit per test:512 megabytes input:standard inpu ...
- codeforces 779D - String Game
time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standa ...
随机推荐
- 在表格中添加text便加框
private void createTableText(Table table) { TableEditor editor = new TableEditor(table); for (int i ...
- 中间件增强框架之-CaptureFramework框架
一.背景 应用服务监控是智能运维系统的重要组成部分.在UAV系统中,中间件增强框架(MOF)探针提供了应用画像及性能数据收集等功能,其中数据收集功能主要采集四类数据:实时数据.画像数据.调用链接数据生 ...
- cdh5-MariaDB 配置(暂未排版)
在多数分布MariaDB的设施默认设置使用保守的缓冲区的大小和内存使用. 使用保守的缓冲区大小和内存使用率 Cloudera的数据库管理服务器,监控活动,报告管理,Cloudera 导航,Hive 的 ...
- Elasticsearch索引增量统计及定时邮件实现
0.需求 随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:10000000*10k/1024/1024=95.37GB,假设单条数据10kB,实际远大于10KB)的 ...
- Storm初识(1)
在Storm集群中,有两类节点:主节点 master node 和工作节点 worker nodes. 主节点运行着一个叫做Nimbus的守护进程.这个守护进程负责在集群中分发代码,为工作节点分配任务 ...
- 对Java中HashCode方法的深入思考
前言 最近在学习 Go 语言,Go 语言中有指针对象,一个指针变量指向了一个值的内存地址.学习过 C 语言的猿友应该都知道指针的概念.Go 语言语法与 C 相近,可以说是类 C 的编程语言,所以 Go ...
- 有关element 的一些问题(随时更新)
<el-input></el-input> input 组件中官方自带的change时间是监听失去焦点之后的value变化,要想一只监听value的值变化的话需要使用 @i ...
- JavaWeb无框架,借助反射采用精巧设计模式实现放微信PC聊天页面
本周开始在写仿写一个微信PC端的聊天页面,没有使用ssh.ssm等框架,采用JavaWeb.反射.MySQL.C3P0等技术.这里把其中和核心技术列出来请大家指教. 与传统JavaWeb项目的区别 传 ...
- C#_会员管理系统
https://www.cnblogs.com/start-from-scratch/p/5420588.html
- Java反射Reflect的使用详解
目录 一. 什么是反射 二. 反射的基础Class 2.1 Class类概述 2.2 Class类对象获取的三种方式 三. 反射-构造函数 3.1 getDeclaredConstructor(Cla ...