ACM 训练日志记录 · 思考 · 成长 提交 / 修改记录
王梓豪 / 题目列表训练档案
导出

2257A A Creating Abbreviations

来源:Codeforces ★ 800

本题活力0.26按难度、完成结果与训练证据估算

算法如山行则将至

题目描述

判断给定的缩写是否能通过依次生成并使用已有单词和缩写得到。

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin>>t;
while(t--)
{
    int n,m;
    cin>>n>>m;
    vector<string> s(n);
    vector<string> a(m);
    set<char> st;
    for(int i=0;i<n;i++)
    {
        cin>>s[i];
        st.insert(tolower(s[i][0]));
    }
    for(int i=0;i<m;i++)
    {
        cin>>a[i];
    }
    bool flag=1;
    for(int i=0;i<m;i++)
    {if(flag)
        {for(int j=0;j<a[i].size();j++)
        {
            if(st.find(tolower(a[i][j]))==st.end())
            {
                cout<<"NO"<<endl;
                flag=0;
                break;
            }
        }}
        else
        break;
    }
    if(flag)
    {
        cout<<"YES"<<endl;
    }
}
}