D. String Game
来源:互联网 发布:sql insert date 编辑:程序博客网 时间:2024/06/05 16:42
题意:给你 一个字符串 t, 一个字符串 p,在给你一个序列a[i], 去掉 字符串中 下标为 a[i] 的字符。问你求出序列个数的最大值,使得p为t 的子字符串。
解法: 有字符串 t,p;
如果在 ,m time后 p 刚好是 t 的子串。
那么在 m-1 次前肯定是可以去掉字符的,m-1次之后肯定是不能去掉字符的。
所以直接 2 分区间 ,得到 m. 如何 m 次移动是合法的话, 就增加m,反之减小m.
#include <bits\stdc++.h>using namespace std;int a[200005], mark[200005], n,m;string t,p;int check(int num){ for(int i=0;i<n;i++) mark[i] = 0; for(int i=0;i<num;i++) mark[ a[i] ] = 1; int leng=0, start = 0; for(int i=0;i<n;i++) { if(!mark[i]) { if(t[i] == p[start]) { leng++; start++; if(leng >= m) // t 字符串中海油 字符串 p { return 1; } } } } return 0;}int main(){ cin>>t>>p; n = t.length(),m = p.length(); for(int i=0;i<n;i++) { cin>>a[i]; a[i]-=1; } int l = 1, r = n, ans=0; while(l <= r) { int mid = (l+r)/2; if(check(mid)) { ans = max(ans, mid); l = mid+1; } else r = mid-1; } printf("%d\n",ans); return 0;}
0 0
- D. String Game
- D. String Game
- 【codeforces 779D】String Game
- codeforces 779 D. String Game
- D. String Game----二分答案
- Codeforces 779D String Game 二分
- codeforces 778D. String Game (二分搜索)
- 【Codeforces-402D】-String Game (二分)
- Codeforces 779D String Game 【二分】
- CodeForces 779D String Game【二分答案】
- D. String Game 二分加字符串匹配
- Codeforces Round #402 (Div. 2) D. String Game (二分)
- Codeforces Round #402 (Div. 2)D. String Game 二分
- Codeforces Round #402 (Div. 2) D. String Game
- codeforces 799 D String Game (二分答案)
- Codeforces Round #402 (div. 2)D. String Game(二分)
- Codeforces Round #402 (Div. 2)D. String Game【二分】
- Codeforces Round #402 (Div. 2)D. String Game【二分】
- 虚基类
- javascript中each方法的实现
- seleniumWebDriver自动化测试框架_02TestNG和txt文件进行数据驱动
- Java虚拟机以及跨平台原理
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
- D. String Game
- java学习日记1(HttpSession和Cookie)
- 欢迎使用CSDN-markdown编辑器
- 如何利用Spring Cloud构建起自我修复型分布式系统
- 525. Contiguous Array
- 【NGUI】限制UIDargObject的拖拽区域(技能双摇杆的实现)
- hdu 1106 排序(简单处理)
- 初次接触java中的递归算法
- c语言中数组名与指针的区别与联系