2018 샹 탄 초청 경기 G
1659 단어 2018 샹 탄 초청 경기
가능 하 다 면 yes 를 출력 합 니 다. 그렇지 않 으 면 no 를 출력 합 니 다.
ab
ba
출력 yes 왜냐하면 ab - aababb - ba
ac
ca
출력 no
분석: 삽입 과 삭제 대상 은 aa bb abab 일 수 있 기 때문에 c 의 수량 이 다 르 면 변환 할 수 없습니다.
먼저 문자열 을 간소화 할 수 있 습 니 다. 즉, 모든 aa bb 를 제거 하 는 것 입 니 다.
그리고 마지막 남 은 것 은 abababab...........................................................................
나머지 문자 수 는 0, 1, 2, 3 일 수 있 습 니 다. 나머지 숫자 중 하나 가 짝수 라면 나머지 두 글자 의 숫자 가 같 아야 합 니 다. 마지막 에 남 은 것 은 ab 또는 ba 또는 비어 있 을 수 있 고 ab 와 ba 는 서로 전환 할 수 있 기 때 문 입 니 다.
나머지 가 홀수 이 고 문자 수가 같다 면 첫 번 째 문자 만 같 으 면 됩 니 다. 마지막 에는 a 나 b 또는 aba 또는 bab 만 나타 날 수 있 기 때 문 입 니 다.
나머지 가 홀수 이 고 문자 수가 다 르 면 첫 번 째 문자 만 다 르 면 됩 니 다. ab 와 ba 는 서로 전환 할 수 있 기 때 문 입 니 다. (선택 후 두 개) 그 다음 에 aa 나 bb 를 없 애고 나머지 문자열 을 서로 전환 시 킬 수 있 습 니 다. (마지막 으로 남 은 것 은 a, b, aba, bab 입 니 다. 그러면 bab - bba - a)
#include
#include
#include
#include
using namespace std;
#define LL long long
#define N 10005
char S[N],T[N];
string simplify(string s) // ababab…… bababa……
{
string ans = "";
while(1) {
bool flag = 1;
int len = s.length();
for(int i=0;i