일련의 메모리 요청과 캐시 크기가 제공됩니다. 캐시 교체 전략에서 캐시 미스 수를 최소로 반환해야합니다.
최적의 전략은 Belady의 알고리즘으로 원하는 경우 사용할 수 있습니다.
캐싱 시스템은 다음과 같이 작동합니다. 캐시가 비어 있습니다. 메모리 요청이 들어옵니다. 요청이 캐시에 데이터 조각을 요청하면 모든 것이 정상입니다. 그렇지 않으면 캐시 누락이 발생합니다. 이 시점에서 나중에 사용하기 위해 요청 된 데이터를 캐시에 삽입 할 수 있습니다. 캐시가 가득 차서 새 데이터를 삽입하려면 이전에 캐시에 있던 데이터를 제거해야합니다. 캐시에만 있지 않은 데이터는 절대 삽입 할 수 없습니다.
목표는 주어진 메모리 요청 순서 및 캐시 크기에 대해 가능한 최소 캐시 누락 수를 찾는 것입니다.
캐시 크기, 양의 정수 및 토큰 목록 인 메모리 요청 시퀀스가 제공됩니다. 이 토큰들은 적어도 256 개의 다른 토큰이 가능하다면 (바이트는 괜찮고, bool은 그렇지 않습니다) 원하는 토큰 종류가 될 수 있습니다. 예를 들어, 정수, 문자열, 목록은 모두 괜찮습니다. 필요한 경우 설명을 요청하십시오.
테스트 사례 :
3
[5, 0, 1, 2, 0, 3, 1, 2, 5, 2]
6
이를 달성하는 대체 정책 은 wikipedia 를 참조하십시오 .
2
[0, 1, 2, 0, 1, 0, 1]
3
2캐시에 추가하지 마십시오 .
3
[0, 1, 2, 1, 4, 3, 1, 0, 2, 3, 4, 5, 0, 2, 3, 4]
9
이것을 달성하는 한 가지 방법은 결코 축출되지 것입니다 0및 2및 퇴거 1마지막으로 사용한 후 가능한 한 빨리.
득점 : 이것은 코드 골프입니다. 가장 적은 바이트가 이깁니다.