সেগমেন্ট ট্রি ব্যবহার করুন - এর পরিসীমাটিকে ছোট ছোট রেঞ্জগুলিতে পুনরাবৃত্ত করতে হবে । আপনার আপডেট অপারেশনের প্রতিটি অন্তর এই পুনরাবৃত্ত পার্টিশনের রেঞ্জগুলির বিভাজন করা যেতে পারে । প্রতিটি ব্যাপ্তির জন্য স্টোর:[ ক , খ ] ও ( লগ এন ) [ এক্স , ওয়াই ][1,n][a,b]O(logn)[x,y]
- ব্যবধানের সংখ্যা যা বৃদ্ধি হয়েছে এবং হ্রাস হয়নি যেমন এমন একটি রেঞ্জ যেখানে বিভক্ত হয়েছে[ ক , খ ] [ এক্স , ওয়াই ] [ ক , খ ]c(x,y)[a,b][x,y][a,b]
- বা পুনরাবৃত্তির নীচে থাকা বিরতিগুলির বিভাজনযুক্ত উপগ্রহের দ্বারা আচ্ছাদিত নয় এমন কক্ষগুলির সংখ্যা[ x , y ]u(x,y)[x,y]
তারপরে যদি পুনরাবৃত্তভাবে এবং বিভক্ত হয় তবে আমাদের কাছে
যাতে আমরা প্রতিটি মান স্থির সময়ে আপডেট করতে পারি যখন অন্যান্য ডেটার জন্য একটি পরিসীমা পরিবর্তন। প্রতিটি সমর্থন ক্যোয়ারীর উত্তর দেওয়া যেতে পারে ।[x,y][x,z][z+1,w]
u(x,y)={0u(x,z)+u(z+1,y)if c(x,y)>0otherwise
u(x,y)u(1,n)
বৃদ্ধি কর্ম সঞ্চালন করার জন্য অপারেশন পার্টিশন মধ্যে রেঞ্জ, বৃদ্ধি এই রেঞ্জ প্রত্যেকের জন্য, এবং পুনঃগণনা উপরে সূত্র ব্যবহার এই প্রতিটি রেঞ্জ এবং তাদের পূর্বপুরুষদের প্রত্যেকের জন্য। হ্রাস অপারেশন একটি বৃদ্ধির পরিবর্তে হ্রাস সঙ্গে একই।[ ক , খ ] ও ( লগ এন ) সি ( এক্স , ওয়াই ) ইউ ( এক্স , ওয়াই )(a,b)[a,b]O(logn)c(x,y)u(x,y)