একটি স্লাইসে কোনও উপাদান গণনা করার জন্য একটি অ্যারের প্রসেস করুন (আরএমকিউতে হ্রাস?)


11

একটি অ্যারের দেওয়া স্বাভাবিক সংখ্যার , যেখানে একটি ধ্রুবক, আমি উত্তর চাই ফর্মের প্রশ্নের: "কতবার নেই সূচকের মধ্যে অ্যারের মধ্যে প্রদর্শিত এবং "?একটি1,...,একটিএন≤টটহে(1)মিআমিঞ

অ্যারেটি লিনিয়ার সময়ে প্রিপ্রোসেস করা উচিত। বিশেষত আমি জানতে চাই রেঞ্জ ন্যূনতম প্রশ্নের কোনও হ্রাস আছে কিনা।


এই ক্ষেত্রে যেখানে RMQ সমতূল্য এবং একটি বিরতি মধ্যে বেশী সংখ্যা অনুসন্ধান করতে চান। সুতরাং আমরা ব্যবহার করতে পারেন এটা । SE এর সীমাবদ্ধতার কারণে আমি আমার নিজের প্রশ্নের উত্তর দিতে পারিনি।ট=1


আপনি আপনার সমস্যার (রৈখিক সময়ে) উপাদানের স্বতন্ত্রতা হ্রাস করতে পারেন। কোনও মডেল সম্পর্কে সম্ভবত কথা বলার ব্যবস্থা রয়েছে?
— আর্যভট্ট

@ আর্যভাত ঠিক কী উপাদানটির স্বতন্ত্রতা সমস্যা? এখন আমি এটি পড়ছি: en.wikedia.org/wiki/Range_Queries
— Andy

এটি আরএমকিউর চেয়ে অনেক সহজ। ইঙ্গিত: যেহেতু কে একটি ধ্রুবক, প্রিপ্রোসেসিং আনুপাতিক সময় ব্যয় করতে পারে এবং এটি এখনও লিনিয়ার সময় হিসাবে গণনা করে।
— Tsuyoshi Ito

@ আর্যভট্ট: আপনি যে হ্রাসের কথা বলছেন বলে আমি মনে করি তা কার্যকর হয় না কারণ কে এই সমস্যাটির একটি ধ্রুবক।
— Tsuyoshi Ito

ঠিক সেক্ষেত্রে, যদি অ্যারে শুরুতে দেওয়া হয় এবং পরে আপডেট না করা হয় তবে আরএমকিউ হ'ল একটি ওভারকিল, যেমনটি আমি আমার আগের মন্তব্যে পরামর্শ দিয়েছি।
— Tsuyoshi Ito

উত্তর:


4

যেহেতু ধ্রুবক, আমরা সীমার মধ্যে প্রতিটি উপাদান গণনা সংরক্ষণ করতে পারেন .. 0 মি জন্য 0 ≤ মি < এন মধ্যে 0 .. এন মধ্যে হে ( ঢ ট ) = হে ( ঢ ) সময় এবং স্থান। প্রাথমিক পর্যবেক্ষণ যে আপনি একটি দ্বি-মাত্রিক অ্যারে করতে পারেন মধ্যে হে ( ঢ ট ) সময়, তারপর পার্থক্য খোঁজার দ্বারা ক্যোয়ারী রেঞ্জ আমি , ঞ ধ্রুব সময় সূচকের।ট0 ..মি0≤মি<এন0 ..এনহে(এনট)=হে(এন)count[pos][elem] = occurences of 'elem' in the indices 0..posহে(এনট)আমি,ঞ

প্রাক-প্রক্রিয়াকরণ

initialise count[pos][elem] to 0 for all elem, pos
for pos=0 to n
  for num=0 to k
      count[pos][num] = (0 if pos==0 else count[pos-1][num])
  count[pos][arr[pos]] ++

প্রশ্ন

(ধরে নিই আমি, জে উভয়ই অন্তর্ভুক্ত সীমা)

if i == 0
  return count[j][m]
else
  return count[j][m] - count[i-1][m]

টcountহে(লগ⁡এন)হে(লগ⁡এন)

এই উত্তর নিয়ে যে কোনও সমস্যার জন্য ক্ষমা চাইছি, এটি আমার প্রথম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.