ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HDU 5510 Bazinga

2021-06-14 11:01:47  阅读:185  来源: 互联网

标签:HDU vector Bazinga int cin book ans 5510 find


HDU 5510 Bazinga

题意:

依次给你n个字符串,让你找到编号最大的字符串,存在一个比他编号小的字符串且不是其子串

题解:

string中有find查找功能,
思路是用一个vector来存之前所有字符串,数组book用来表示,book[j]=1说明在当前串s[i]中找得到vec[j],否则记录当前答案
vector和book相配合使得s[i]每次find查找的串是之前彼此找不到的串,这样可以减少find次数

代码:

#include <bits/stdc++.h>
using namespace std;
#define asd cout<<" SB "<<endl;
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
int main(){
    ios::sync_with_stdio(0);
	int t;
	cin>>t;
	for(int I=0;I<t;++I){
		int n;
		cin>>n;
		vector<string> s(n),v;
		vector<bool> book(n,0);
		cin>>s[0];
		v.push_back(s[0]);
		int ans=-1;
		for(int i=1;i<n;++i){
			cin>>s[i];
			for(int j=0;j<v.size();++j){
				if(book[j]) continue;
				int pos=s[i].find(v[j]);
				if(pos!=-1){
					book[j]=1;
				}
				else{
					ans=i;
				}
			}
			v.push_back(s[i]);
		}
		if(ans==-1){
			cout<<"Case #"<<I+1<<": "<<-1<<endl;
		}
		else cout<<"Case #"<<I+1<<": "<<ans+1<<endl;
	}
    return 0;
}

标签:HDU,vector,Bazinga,int,cin,book,ans,5510,find
来源: https://blog.csdn.net/qq_35975367/article/details/117898714

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有