高效算法设计专项:UVa 10391

来源:互联网 发布:mac电脑怎样退出程序 编辑:程序博客网 时间:2024/06/08 05:20

用hash表记录字符串,然后遍历所有的字符串,检验该字符串是否可以被分解成两个表中的其他的字符串即可。具体实现起来就是用stl中的set。

#include <iostream>#include <fstream>#include <cstring>#include <cstdio>#include <set>#include <string>using namespace std;int main(){    freopen("in.txt","r",stdin);    string s;    set<string> S;    while(cin>>s) S.insert(s);    for(set<string>::iterator it=S.begin();it!=S.end();it++)    {        s=*it;        int flag=0;        for(int i=1;i<s.size()-1;i++)            if(S.count(s.substr(0,i))&&S.count(s.substr(i)))            {                flag=1;break;            }        if(flag) cout<<s<<endl;    }    return 0;}


原创粉丝点击