【2017NOIP普及组】T2 图书管理员

P3955 图书管理员
题目传送门
方法一:

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e3+10;
int n,q,l;
string s[N],x;
bool cmp(string a,string b)
{
	if(a.size()==b.size()) return a<b;
	else return a.size()<b.size();
}
void input()
{
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++) cin>>s[i];
	sort(s+1,s+1+n,cmp);
	while(q--)
	{
		bool f=0;
		cin>>l>>x;
		for(int i=1;i<=n;i++)
		{
			int len=s[i].size();
			if(s[i].find(x,len-l)==len-l&&len>=l) //len不能比l小
			{
				cout<<s[i]<<endl;
				f=1;
				break;
			}
		}
		if(!f) cout<<-1<<endl;
		
	}
}
int main()
{
	//fre();
	input();
	return 0;
}

方法二:

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e6;
int n,q;
int a[1010];
struct dz
{
	int x,m;
} b[1010];
void input()
{
	cin>>n>>q;
	for(int i=1;i<=n;i++) cin>>a[i];
	sort(a+1,a+1+n);
	for(int i=1;i<=q;i++) cin>>b[i].x>>b[i].m;
}
void work()
{
    for(int i=1;i<=q;i++)
    {
    	bool ok=0;
    	int Mod=pow(10,b[i].x);
    	for(int j=1;j<=n;j++)
    	{
    		if(a[j]%Mod==b[i].m)
    		{
    		  	cout<<a[j]<<endl;
    		 	ok=1;
              	break;
			}
		}
		if(!ok) cout<<-1<<endl;
	}
}
int main()
{ 
    input();
    work();
	return 0;
}
原创文章 157 获赞 148 访问量 8301

猜你喜欢

转载自blog.csdn.net/bigwinner888/article/details/105878875