আপনাকে মেমরি অনুরোধের ক্রম এবং একটি ক্যাশে আকার দেওয়া হবে। কোনও ক্যাশে প্রতিস্থাপনের কৌশল অনুসারে আপনাকে অবশ্যই সর্বনিম্ন সম্ভাব্য সংখ্যক ক্যাশে মিস করতে হবে।
একটি অনুকূল কৌশল হ'ল বেলার্ডের অ্যালগরিদম , যা আপনি চাইলে ব্যবহার করতে পারেন।
একটি ক্যাশে ব্যবস্থা নিম্নরূপে কাজ করে: ক্যাশেটি খালি শুরু হয়। মেমোরি অনুরোধগুলি আসে the যদি অনুরোধটি ক্যাশে ডেটার একটি অংশের জন্য জিজ্ঞাসা করে, তবে সবকিছু ঠিক আছে। যদি তা না হয় তবে আপনাকে ক্যাশে মিস করতে হবে। এই মুহুর্তে আপনি ভবিষ্যতে ব্যবহারের জন্য ক্যাশে অনুরোধ করা ডেটা .োকাতে পারেন। যদি ক্যাশে পূর্ণ ছিল এবং আপনি নতুন ডেটা sertোকাতে চান, আপনাকে অবশ্যই সেই ডেটাটি উচ্ছেদ করতে হবে যা আগে ক্যাশে ছিল। আপনি কখনই ডেটা inোকাতে পারবেন না যা কেবল ক্যাশে ছিল না।
আপনার লক্ষ্য একটি প্রদত্ত মেমরি অনুরোধের ক্রম এবং ক্যাশে আকারের জন্য সর্বনিম্ন সম্ভাব্য সংখ্যক ক্যাশে মিস করা সন্ধান করা।
আপনাকে ক্যাশের আকার, ধনাত্মক পূর্ণসংখ্যার এবং মেমরি অনুরোধের ক্রম দেওয়া হবে, যা টোকেনের একটি তালিকা। এই টোকেনগুলি আপনার যে ধরণের টোকেন পছন্দ করে তা হতে পারে, যতক্ষণ না কমপক্ষে 256 টি বিভিন্ন টোকেন সম্ভব হয় (বাইট ভাল, বুল হয় না)। উদাহরণস্বরূপ, ints, স্ট্রিং, তালিকা সব ঠিক আছে। প্রয়োজনে স্পষ্টতা জিজ্ঞাসা করুন।
পরীক্ষার কেস:
3
[5, 0, 1, 2, 0, 3, 1, 2, 5, 2]
6
প্রতিস্থাপনের নীতি যা এটি অর্জন করে তার জন্য উইকিপিডিয়া দেখুন ।
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
করা।
স্কোরিং: এটি কোড গল্ফ। সবচেয়ে কম বাইট জেতা