1, 2로 간단하게

TEST3 초 당 기한
test256 메가 바이트 당 메모리 제한
표준 입력 : 입력
출력 : 표준 출력

주어진 만의 라틴 소문자로 구성이 아닌 빈 문자열의 = s1s2 ... SN. 이 문자열로 적어도 하나의 문자열 "하나"또는 적어도 하나의 문자열 "이"(또는 동시에 모두)가 포함되어있는 경우 폴리 카르 문자열처럼하지 않습니다. 정수 J (1≤j≤n-2), 그 SJSJ 1sj + + 2 = "하나"또는 SJSJ 1sj + + 2 = "2"가 존재하는 경우 즉, 폴리 카르 문자열 S 좋아하지 않는다.
예를 들면 :
폴리 카르는 문자열이 아니라 "oneee", "ontwow", "twone"와 "oneonetwo"(그들 모두가 적어도 하나가 "하나"또는 "이"부분 문자열 한)처럼하지
폴리갑은 "oonnee을"문자열을 좋아한다 "twwwo"와 "twnoe을 "(그들은 더 문자열이 없다"한 "과"두 ").
폴리 카르는 인덱스 (위치)의 특정 세트를 선택하고이 위치에 모든 문자를 제거하고자합니다. 모든 제거가 동시에 이루어집니다.
S와 같은 문자열이 보이는 = "onetwone"는 다음 폴리 카르 선택 개의 인덱스 3, 6 있다면, "onetwone"가 선택 될 경우, 예를 들어, 그 결과는 "ontwne"이다.
폴리갑은 문자열이 좋아하도록 선택해야한다는 인덱스 (위치)의 최소 수는 무엇입니까? 이 위치는 무엇을해야 하는가?

입력
은 입력에서 테스트 케이스의 수 - 입력의 첫 번째 라인은 정수 t (1≤t≤104)을 포함한다. 다음, 테스트 케이스가 제공됩니다.
각각의 테스트 케이스는 하나의 비어 있지 않은 문자열들로 구성되어 있습니다. 그것의 길이는 1.5⋅105를 초과하지 않습니다. 문자열의는 라틴 소문자로 구성되어 있습니다.
이는 시험의 모든 입력 데이터의 모든 라인들의 길이의 합이 1.5⋅106를 초과하지 않는 것을 보장한다.

출력은
그들의 외관의 순서로 입력의 각 테스트 케이스에 대한 답변을 인쇄합니다.
(|의 | 0≤r≤) 각 응답의 첫 번째 줄은 R을 포함해야 - 어디에 위치의 필요한 최소 수, 제거 할 | s에 | 주어진 라인의 길이입니다. 포함해야한다 각 응답의 두 번째 줄은 서로 다른 정수 r에 - 인덱스 자신을 임의의 순서로 제거. 지수는 문자열의 길이에 1에서 왼쪽에서 오른쪽으로 번호가 매겨집니다. R = 0, 다음 두 번째 라인은 생략 할 수있는 경우 (또는 당신은 빈 인쇄 할 수 있습니다). 여러 가지 답이있는 경우, 그 중 하나를 인쇄 할 수 있습니다.


입력
4
onetwone
testme라는
oneoneone
twotwo

출력
2
6 3
0
3
4 7 1
2
1 4

입력
10
onetwonetwooneooonetwooo

하나
twooooo
ttttwo
ttwwoo
ooone
onnne
oneeeee
oneeeeeeetwooooo

출력
6
18 11 12 6 21 1
1
1
1
3
1
2
1
6
0
1
4
0
1
1
2
1 11

타이틀 효과 :
문자열, 삭제의 일부 (또는 삭제되지 않을 수 있습니다)을 감안할 때 그래서 연속 한 문자 "하나"또는 "이".
최근 필드 DIV2의의 CF C 제목, 전략, 심지어 WA 3 라운드, 인스턴트 폭발 처벌로 이어지는, 처음에 몇 가지 질문이 있습니다. 전략은 별도의 "한"n을 삭제 넣으면 삭제 w 별도의 "이"풋는, 이러한 경우와 유사한 "oooneee"할 수 있다면, 간단 경우 문자의 복수의 헤드 엔드. 그것은 "twone"인 경우에, O를 삭제했습니다. 첫 번째 WA 결정은 루프 포인터가 "하나"로 루프 후 삭제 O를 "twone를"점프하지 않습니다에 대한 N 다시 삭제 때문에 수행되지 않습니다. 로고 배열의 첨가 후, 마지막으로 커서에 직접 꿀 WA는 교류에 치료에서 이동합니다. (DO는 뇌가 명확 제목 .JPG하지 치지)

코드
#INCLUDE <비트 / stdc ++ H.> 
네임 스페이스를 사용하여 표준; 
긴 LL 긴 형식 정의를; 
INT t; 
문자열의; 
int로이 [100005]; 
INT 배, NUM; 
 
주 () {int로 
	CIN >> t 단계; 
	{- (t)에있는 동안 
		, CIN가 >>이야 
		시간 = 0; NUM = 0; 
		경우 (나는 <s.size (); INT 나 0 = I ++) { 
			경우 (S [I] == 'O'&& S [I + 1] == 'N'&& S [i가 + 2] == 'E') { 
				배 ++; 
				A [NUM ++] = 1 + 2; 
				난 + = 2; 
			} 다른 경우 (S [I] == 't'&& S [I + 1] == && 'w'S [I + 2] == 'O') { 
				경우 (S [I + 3] == ' N '&& S [I + 4] =='E ') { 
					회 ++; 
					A [NUM ++] = 1 + 3; 
					난 + = 4; 
				} 다른 { 
					배 ++; 
					A [NUM ++] = 1 + 2; 
					난 + = 2;  
		}
				}	
			}
		COUT << 회 << ENDL; 
		경우 (나는 <NUM; INT 나 0 = I ++) { 
			COUT << A [I]; 
			경우 (I-1 = NUM!) { 
				COUT << ""; 
			} 
		} 
		COUT << ENDL; 
	} 
	0을 반환; 
	
}

  


----------------

CSDN 링크 : HTTPS : //blog.csdn.net/weixin_43880627/article/details/103621781

추천

출처www.cnblogs.com/jjmmboom/p/12075373.html