포럼
문제 USACO0657

베시의 함수

설명

베시는 \([1, N]\) 범위의 정수를 입력받아 \([1, N]\) 범위의 정수를 반환하는 특별한 함수 \(f(x)\)를 가지고 있다(\(1 \le N \le 2 \cdot 10^5\)). 함수 \(f(x)\)는 정수 \(N\)\(a_1 \ldots a_N\)으로 정의되며, \(f(x) = a_x\)(\(1 \le a_i \le N\))이다.

베시는 이 함수가 멱등이기를 원한다. 즉, 모든 정수 \(x \in [1, N]\)에 대해 \(f(f(x)) = f(x)\)를 만족해야 한다.

베시는 비용 \(c_i\)를 지불하고 \(a_i\)의 값을 \([1, N]\) 범위의 임의의 정수로 바꿀 수 있다(\(1 \le c_i \le 10^9\)). \(f(x)\)를 멱등으로 만들기 위해 베시가 지불해야 하는 총비용의 최솟값을 구하시오.

Problem credits: Avnith Vijayram

제약

배점

서브태스크:

  • 입력 3: \(N\le 20\)
  • 입력 4-9: \(a_i\ge i\)
  • 입력 10-15: 모든 \(a_i\)가 서로 다르다.
  • 입력 16-21: 추가 제약이 없다.

추가로, 마지막 세 서브태스크 각각에서 테스트의 앞쪽 절반은 모든 \(i\)에 대해 \(c_i=1\)을 만족한다.

Problem credits: Avnith Vijayram

입력 형식

첫째 줄에 \(N\)이 주어진다.

둘째 줄에 공백으로 구분된 정수 \(N\)\(a_1,a_2,\dots,a_N\)이 주어진다.

셋째 줄에 공백으로 구분된 정수 \(N\)\(c_1,c_2,\dots,c_N\)이 주어진다.

출력 형식

\(f(x)\)를 멱등으로 만들기 위해 베시가 지불해야 하는 총비용의 최솟값을 출력한다.

예제 1
입력
5
2 4 4 5 3
1 1 1 1 1
출력
3
설명

We can change \(a_1 = 4\), \(a_4 = 4\), \(a_5 = 4\). Since all \(c_i\) equal one, the
total cost is equal to \(3\), the number of changes. It can be shown that there is
no solution with only \(2\) or fewer changes.

예제 2
입력
8
1 2 5 5 3 3 4 4
9 9 2 5 9 9 9 9
출력
7
설명

We change \(a_3 = 3\) and \(a_4 = 4\). The total cost is \(2+5=7\).

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2024-2025 > February > Gold

태그

평가 및 의견

Bessie's Function

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Bessie's Function

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8