Lazy_make_name @ 2024-03-06 22:09:46
这段代码我改了N次了 我的做法有点暴力,因为我知道不会超时
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main(){
int n,q;
cin>>n>>q;
string zx;
string yuan[n+1];
int wei[q+1];
string xu[q+1];
for(int i=1;i<=n;i++)
cin>>yuan[i];
for(int i=1;i<=q;i++){
cin>>wei[i];
cin>>xu[i];
}
zx="100000001";
for(int i=1;i<=q;i++){//需求码
zx="100000001";
for(int j=i;j<=n;j++)//图书编码
if(yuan[j].find(xu[i],xu[i].size()-wei[i])!=-1)
if(zx.size()!=yuan[j].size())
if(zx.size()>yuan[j].size())
zx=yuan[j];
else
if(zx>yuan[j])
zx=yuan[j];
if(zx=="100000001")
cout<<-1<<endl;
else
cout<<zx<<endl;
}
}
by SMall_X_ @ 2024-03-06 22:17:33
要标记
by sll00 @ 2024-03-06 23:32:35
@shimingxin1007 不用标记
by sll00 @ 2024-03-06 23:34:29
@13860121259AaBb 可以参考一下我的做法我用字符串查找来处理
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define pii pair<int,int>
#define mp make_pair
#define st string
#define vint vector<int>
#define vll vector<ll>
#define For(i,l,r) for(int i=(int)(l);i<=(int)(r);i++)
#define Refor(i,r,l) for(int i=(int)(r);i>=(int)(l);i--)
#define pb push_back
#define maxn 1005
struct test
{
int s;
st num;
}brr[maxn];
st arr[maxn];
ll krr[maxn];
bool cmp1(test o,test p)
{
if(o.num.size()==p.num.size())
{
return o.num<p.num;
}
else
{
return o.num.size()<p.num.size();
}
}
bool cmp(st o,st p)
{
if(o.size()==p.size())
{
return o<p;
}
else
{
return o.size()<p.size();
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int n,q;
cin>>n>>q;
For(i,1,n)
{
cin>>arr[i];
krr[i]=0;
}
bool flag=false;
For(i,1,q)
{
cin>>brr[i].s>>brr[i].num;
}
sort(arr+1,arr+1+n,cmp);
For(i,1,q)
{
flag=false;
For(j,1,n)
{
if(arr[j].rfind(brr[i].num)!=arr[j].npos&&arr[j].size()>=brr[i].num.size()&&arr[j].rfind(brr[i].num)==arr[j].size()-brr[i].s)
{
cout<<arr[j]<<endl;
flag=true;
break;
}
}
if(flag==false)
{
cout<<-1<<endl;
}
}
return 0;
}
by Lazy_make_name @ 2024-03-07 13:21:36
@sll00 我是萌新,这样的做法我看不懂,麻烦加些注释
by sll00 @ 2024-03-07 21:16:33
@13860121259AaBb 我的大致思路就是,输入完后依据编号大小来排序,(长度相同直接比较,不相同长的为大的编号)。排好序(主要是按字典序输出),然后一个暴力遍历一遍就好了。
最主要还是要注意那个读者编号是那个书的后几位编号!希望有帮助
by suberking_99 @ 2024-06-17 22:13:32
逻辑有问题