루오 구 P1106은 몇 가지 문제를 삭제
https://www.luogu.org/problemnew/show/P1106
JDOJ 2898 : 삭제 대수 문제
https://neooj.com:8082/oldoj/problem.php?id=2898
기술
대한 새로운 S 자리 양수 후 나머지 디지털 원래 순서를 제거 고정밀 N 양의 정수를 입력한다. 소정의 N 및 S의 프로그래밍 솔루션을 찾을 수 있도록 새로운 최소 수의 나머지 자리.
새로운 출력 양의 정수입니다. (N은하게는 240 초과) 입력 데이터가 오류없이 판단된다.
입력
[입력]
N-
S
산출
마지막 남은 최소.
샘플 입력
샘플 출력
힌트
예를 들어 175 438 = N-
S. 4 =
다음 삭제할 수 :
. = 175 // 438-N 삭제 7
. 15,438 // 삭제 5
. 1438 // 삭제 4
138 // 삭제 8 개.
13 13 // 솔루션
(A)의 정밀 플러스 욕심 제목입니다.
최소 욕심 전략이 질문은 수의 나머지 부분을 보장하기 위해 그림을 삭제하는 방법입니다.
원칙적으로, 선택의 최대 수는 있지만 분명하지, 삭제합니다.
당신이 그림 기능에 숫자를 할 경우, 당신은 멀리 앞으로 가능한 한 최대의 번호를 삭제해야하지만.
원칙 중 욕심, 다음 단계는 고정밀 코드입니다.
나는 정밀 약한.
하지 추한에 너무 바보 Baji은 코드를 쓰기.
그러나 그는 먼저 허점, 또는 C 언어 목록을 드릴.
AC 코드 :
#INCLUDE <STDIO.H> #INCLUDE < 문자열 .H> 숯 C [ 260 ]; INT 의, CNT; INT 의 main () { 는 scanf ( " % S %의 D ' 는 C, S); INT LEN = strlen 함수 (c); 반면 (s-- ) { 위해 ( int로 I = 0 ; I <= len- 2 ; I ++ ) 경우 (c [i]는> C [I + 1 ]) { 대 ( INT의 J = I, J <= len- 2 ; J ++ ) C [J] = C의 [J + 1 ]; 휴식 ; } 렌 - ; } 동안 (CNT <= len- 1 개 && C [CNT] == ' 0 ' ) CNT를 ++ ; 경우 (CNT == LEN) 의 printf ( " 0 " ); 다른 대 ( INT의 J = CNT; J <len- = 1 ; J ++ ) 의 printf ( " %의 C ' , C [J]); 반환 0 ; }