首页 > 大佬帮忙~~

大佬帮忙~~

大佬们帮忙康康这题我哪错了好不好~
题目:
链接:https://ac.nowcoder.com/acm/contest/8844/M
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

在一个超市里有一个货物架,上面有n\mathit nn个格子,编号1,2,...,n\text 1,2,...,n1,2,...,n

超市里共出售26\text 2626种商品,分别用小写字母a,b,...,z\mathit a,b,...,za,b,...,z表示。

当一个顾客前来购买商品的时候,他会从第一个格子查找到第n\mathit nn个格子,如果他在中间某一个格子处找到了自己想要的商品就会将他拿下来并购买它,然后立刻离开超市;如果他在中间某一个格子处发现这个格子里没有商品,他就会立刻停下来并离开超市;如果他走到最后也没有发现自己想要的商品也会离开超市。

货物架初始第i\mathit ii个格子里的商品为sis_{i}si

现在有m\mathit mm个人将按照顺序进入超市,第i\mathit ii个人想要的商品为cic_{i}ci

作为超市的管理员,你想要尽可能多的出售商品。你可以在这些人到来前任意调整商品位置,但是一旦第一个人进入超市你就不能再调整了。那么你最多可以卖出多少商品呢?

输入描述:

第一行两个空格分隔的正整数n,m\mathit n,mn,m。
第二行一个长度为n\mathit nn只包含小写字母的字符串s\text ss
第三行一个长度为m\mathit mm只包含小写字母的字符串c\text cc
含义均如题面所述。
1≤n,m≤10001\leq n,m \leq 10001n,m1000

输出描述:

一行一个正整数代表答案。
示例1

输入

复制 3 3 abc abc
3 3
abc
abc

输出

复制 3
3

说明

假如不进行调整,那么在第一个人购买第一个a\mathit aa后其他人都会因为第一个格子为空而离开,只能卖出一件商品。
如果将货物架调整到cba\mathit cbacba,就可以达到卖出三件商品的效果。

代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,sum=0,ans=0;
string a,b,c;
cin>>n>>m>>a>>b;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i]==b[j]) {
b[j]='?'+sum*j+2;
a[i]=':'+sum;
sum++;
continue;
}
}
}
cout<<sum;
return 0;
}

全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

近期精华帖

热门推荐