은 문자열의 집합을 감안할 때충돌 문자열 프로그래밍 대회
ap***
ab*le
a****
ab***
문제가 문자열의 집합 일치 여부, 문자열, 허용 차이의 수의 수를 주어진 찾을 수 있습니다 말한다.
위의 세트를 사용하면 일치하지 않는 단일 문자열 (두 번째 문자열)을 허용하는 경우 대답은 "예"이지만 일치하지 않는 문자열을 허용하지 않으면 "아니오"입니다.
어떤 알고리즘이 가장 좋으며 복잡도는 무엇입니까?
하나 하나의 해결책은 모든 조합을 살펴 보거나 간단히 잘못되었습니다. 예를 들어 **, ab 광고가 통과하기 때문에 문자열을 세트에 추가 할 수 없습니다 (별개의 "호환되지 않는"것으로 정의 됨). (에서)
실제 문제 : 문제 M
고고학자가 중요한 된 His torical 중요성 20 세기 텍스트 문서의 큰 컬렉션을 발견 한 2417 년. 중복 된 문서가 많았지 만, 시간이 많아서 텍스트의 대부분을 읽을 수 없게 만들었 기 때문에, 이라는 피해와 잘 맞지 않았 음을 분명히 알았습니다. 그 중 일부는 동의하지 않았습니다. 그러나 텍스트 그룹을 일관되게 만들 수 있음을 알았습니다. 즉, 텍스트 사이에 일치 성 (consistency)을 달성하려면 작은 수의 텍스트를 제외하여 달성 할 수있는 것으로 나타났습니다 (예 : ). 예를 들어, 텍스트 :
ap***
ab*le
app*e
*p\**e
(*는 읽을 수없는 문자 임)은 두 번째 텍스트 만 제거하면 일관성을 유지할 수 있습니다.
입력은 일련의 텍스트로 구성됩니다. 각 세트는 집합의 텍스트 수와 제거 할 수있는 최대 텍스트 수를 지정하는 줄로 시작됩니다. 이것은 이고 줄마다 하나씩 개별 텍스트가옵니다. 각 텍스트는 소문자 또는 별표 중 적어도 하나 이상이고 250 자로 구성됩니다. 한 세트에있는 모든 텍스트는 동일한 길이가 이고 한 세트에 10,000 자 이하의 텍스트가 있습니다. 세트의 순서는 두 개의 0 (0 0)을 포함하는 행에 의해 종료됩니다.
각 세트의 출력은 에 따라 'Yes'또는 'No'중 하나를 포함하는 행으로 구성되며 지정된 수만큼의 텍스트를 제거하여 세트의 일관성을 유지할 수 있는지 여부를 나타냅니다.
Sample input
4 1
ap***
ab*le
app*e
*pple
3 1
a
b
c
4 2
fred
ferd
derf
frd*
0 0
Sample output
Yes
No
No
무엇이 당신의 질문입니까? 너 뭐 해봤 니? (이것은 아마도 닫힐 것입니다) – Blastfurnace