UVA310
来源:互联网 发布:5800简单编程教学 编辑:程序博客网 时间:2024/06/16 16:18
一开始输入四个字符串(都是只含a,b),第三串是初始字符串,第四串是目标字符串,变化方式是把第三串中出现a就替换成第一串,出现b就替换成第二串。问新字符创的子集中(也就是截断出目标字符串长度)含不含目标字符串。
做法就是妹子都把ab全变完后,截断出目标字符串长度的所有子集,判断有没有满足的,满足就结束。 不满足,并且没有出现过,就入队列。
AC代码:
#include<iostream>#include<string>#include<map>#include<queue>using namespace std;string a;string b;string beg;string target;string s,s1;bool ok;queue<string> q;map<string ,int> m;void judge (string temp) {for (int i = 0; i < temp.size() - 1 ;i++) {string temp2 = "";for (int j = i ; j < i + target.size() && j < temp.size() ;j++) {temp2 += temp[j];}if(temp2 == target) {ok = true;return ;}else {if (!m[temp2]) {q.push(temp2);m[temp2] = 1;}}}}void bfs () {ok = false;while(!q.empty()) {q.pop();}m.clear();s = beg;m[s] = 1;q.push(s);if (beg.size() >= target.size())judge(beg);if(ok)return;while (!q.empty()) {s = q.front();q.pop();string temp = "";for (int i = 0 ; i < s.size() ;i++) {if (s[i] == 'a') temp += a;if (s[i] == 'b')temp += b;}judge(temp);if (ok)return;}}int main () {while (cin >> a) {cin >> b >> beg >> target;bfs();if(ok)cout << "YES"<<endl;elsecout << "NO"<<endl;}return 0;}
0 0
- UVA310
- uva310
- uva310 - L--system
- uva310 L-system L系统 哈希判重又TLE
- 唐居令 偶感
- Leetcode: Anagrams
- jquery的click bind live 区别
- asp.net参数化like
- android ListView详解
- UVA310
- Android上dip、dp、px、sp等单位说明
- appweb的开发步骤简介
- 创业者复盘长文:心有菩提手有刀,欲成舍利却成妖
- java笔记心得2
- Android Dialog
- walkDemo
- 【个人机房重构】—— 将DataGridView中的数据导出到Excel表中㈣
- asp.net多条件ajax查询