题意:给出一个字符串s, 可以从左往右拿走s的字符, 至少要到s的第几个位置才能拼成t

思路:用二维数组记录前缀,然后二分即可.

 #include<bits/stdc++.h>

 using namespace std;
#define inf 5000000
#define N 210050
int sum[N][];
int arr[];
string s;
string str;
int n;
bool slove(int id) {
for(int i=; i<; i++)
if(arr[i]-sum[id][i]>)
return false;
return true;
}
int main() {
cin>>n;
cin>>str;
int _;
cin>>_;
for(int i=; i<str.size(); i++) {
++sum[i][str[i]-'a'];
if(i!=) {
for(int j=; j<; j++) {
sum[i][j]+=sum[i-][j];
}
}
}
while(_--) {
cin>>s;
for(int i=; i<=; i++)
arr[i]=;
for(int i=; i<s.size(); i++) {
arr[s[i]-'a']++;
}
int l=;
int r=n;
int ans=inf;
while(l<=r) {
int mid=(l+r)/;
if(slove(mid)) {
r=mid-;
ans=min(ans,mid);
} else {
l=mid+;
}
}
cout<<ans+<<'\n';
}
return ;
}

最新文章

  1. Android开发之扫描二维码开发
  2. javascript 核心语言笔记- 2 语法结构
  3. ECMAScript Web APIs node.js
  4. 安装Virtual Box增强功能 - Ubuntu
  5. KV6.60 SP1
  6. 【原】iOS中KVC和KVO的区别
  7. 【原创】Matlab中plot函数全功能解析
  8. UWP--MVVM简单计算器
  9. Android初级教程XUtils实现“断点续传”下载
  10. OpenCV学习笔记(二) - 写入视频、jpg格式
  11. SQLite 实现删除表中前一天的数据
  12. linux 地址解析协议 arp
  13. JUnit4测试报错:class not found XXX
  14. asp在线压缩和解压缩文件(文件夹)
  15. 如何通过&lt;include/&gt;标签重用Mybatis的代码段
  16. Asp.Net_抓包解析xml文件为json
  17. # 释放内存 filter_res_q_l = filter_res_q_l[-2048:] filter_res_a_l = filter_res_a_l[-2048:]
  18. 使用cmd命令登录mysql数据库时报2013-Lost connection to MYSQL server at &#39;waiting for initial communication packet&#39;,system error:0
  19. python:用setup.py安装第三方包packages
  20. Kanboard 看板工具配置使用

热门文章

  1. Python【HTML基础】
  2. SAS学习笔记26 方差分析
  3. Once in a casino CodeForces - 1120B (暴力)
  4. CSS定位以及z-index属性(层叠性)的详解(转)
  5. RDS for MySQL 逻辑备份文件恢复到自建数据库
  6. 联想U310 安装系统后无法识别机械硬盘处理
  7. (三)mybatis之通过接口加载映射配置文件
  8. Thymeleaf 模板使用 Error resolving template &quot;/home&quot;, template might not exist or might not be accessible by any of the
  9. .NET Core 常用第三方包
  10. POJ2503(Babelfish)--简单字典树