바 이 두 의 별 2015 첫 경기 (1) 1003 시퀀스 변환
2112 단어 문제 풀이 보고서
Accepts: 816
Submissions: 3578
Time Limit: 4000/2000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description
주어진 서열 A = {A1, A2,..., An} 은 서열 A 중의 일부 요 소 를 바 꾸 고 엄격 하고 단조 로 운 서열 B (엄격 하고 단조 로 운 정 의 는 bi < bi + 1, 1 ≤ i < N) 를 형성 하도록 요구 합 니 다.
우 리 는 서열 A 에서 서열 B 로 변환 하 는 대 가 를 cost (A, B) = max (| Ai − Bi |) (1 ≤ i ≤ N) 로 정의 합 니 다.
조건 을 만족 시 키 는 최소한 의 대 가 를 요구 하 다.
모든 원 소 는 변환 전후 에 정수 임 을 주의 하 세 요.
Input
제1 행위 테스트 의 그룹 수 T (1 ≤ T ≤ 10).
각 조: 첫 번 째 행위 서열 A 의 길이 N (1 ≤ N ≤ 105), 두 번 째 줄 은 N 개 수, A1, A2,..., An. 서열 A 중의 모든 요소 의 값 은 정수 이 며 106 을 초과 하지 않 습 니 다.
Output
모든 테스트 샘플 에 대해 두 줄 을 출력 합 니 다:
첫 번 째 줄 출력: "Case \ # i:".i. i 조 테스트 데 이 터 를 대표 합 니 다.
두 번 째 줄 에서 하나의 정 수 를 출력 하 는 것 은 조건 을 만족 시 키 는 최소 대 가 를 대표 한다.
Sample Input
2
2
1 10
3
2 5 4
Sample Output
Case #1:
0
Case #2:
1
문제 풀이 방향:
금 함유량 이 꽤 있 는 문제 다.
우선 등가, 문제 "조건 을 만족 시 키 는 최소 대가" (그 중 대 가 는 cost (A, B) = max (| Ai - Bi |) (1 < = i < = N) 는 등가 로 "주어진 배열 로 하 나 를 찾 을 수 있 습 니 다.Ai - i 의 최대 값 과 최소 값 을 찾 아 최소 값 이 최대 값 앞 에 나타 나 면 이 배열 의 최소 대 가 는 0 이 고, 최대 값 이 최소 값 앞 에 나타 나 면 (max - min) / 2 + (max - min)% 2 가 최소 대가 입 니 다. "
이런 사고방식 은 수학 귀납법 으로 증명 할 수 있다. 나 는 이런 사고방식 이 예 를 들 어 관찰 한 다음 에 부분적으로 귀납 한 다 는 것 을 알 수 있다.
#include
int main()
{
int T, N, i, j, k;
scanf("%d", &T);
for(i = 0; i < T; i++) {
scanf("%d", &N);
int cost, m, bestCost = 0;
scanf("%d", &m);
int min = m, max = m, minJ = 0, maxJ = 0;
for(j = 1; j < N; j++) {
scanf("%d", &m);
m = m - j;
if(m <= min) {min = m; minJ=j;}
else if(m > max) {max = m; maxJ=j;}
}
if(maxJ < minJ) bestCost = max - min;
printf("Case #%d:
", i+1);
printf("%d
", bestCost / 2 + bestCost % 2);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바 이 두 의 별 2015 첫 경기 (1) 1003 시퀀스 변환우 리 는 서열 A 에서 서열 B 로 변환 하 는 대 가 를 cost (A, B) = max (| Ai − Bi |) (1 ≤ i ≤ N) 로 정의 합 니 다. 각 조: 첫 번 째 행위 서열 A 의 길이 N (1 ≤...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.