站外题求助!!!
查看原帖
站外题求助!!!
1059234
FamousKillerconan楼主2025/7/22 13:27

HDU1181

#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define endl "\n"
using namespace std;
const int N=1e6+5;
const int INF=0x3f3f3f3f3f3f3f3f;
const double EPS=1e-6;
const int MOD=998244353;
string s[N];
int ans,n,f;
map<string,int>vis; 
bool bfs(string st){
	queue<string>que;
	vis[st]=1;
	que.push(st);
	while(!que.empty()){
		string u=que.front();
		que.pop();
		int len=u.size();
		if(u[len-1]=='m')return 1;
		for(int i=1;i<=n;i++){
			if(u[len-1]==s[i][0]){
				que.push(s[i]);
				vis[s[i]]=1;
			}
		}
	}
}
void solve(){
    while(cin>>s[++n]){
    	if(s[n]=="0")break;
	}
	n--;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=n;j++)vis[s[j]]=0;
    	if(s[i][0]=='b'&&bfs(s[i]))f=1;
	}
	if(f)cout<<"Yes.";
	else cout<<"No.";
}
signed main(){
	ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int T=1;
//	cin>>T;
    while(T--)solve();
    return 0;
}
2025/7/22 13:27
加载中...