....ol comp....

سوالات المپیاد کامپیوتر

....ol comp....

سوالات المپیاد کامپیوتر

سوال ۳ . «برنامه نویسی»

پنجشنبه, ۲۰ مهر ۱۳۹۱، ۰۹:۲۰ ب.ظ

دنباله از ۰ و ۱ به طول n داریم و k  بازه مانند (ai , aj) داده می شود . در هر حرکت می توان یکی از k بازه را انتخاب و تمام اعداد این بازه در دنباله را از ۱ به ۰ و از ۰ به ۱ تبدیل کرد. به هر دو عدد نا برابر مجاور در دنباله نا صافی گفته می شود. حال با گرفتن N , K  و دنباله و k بازه و با توجه به عملیات های تعریف شده ٬ دنباله ی با کمترین تعداد ناصافی ایجاد شده به وسیله ی عملیات ها از دنباله اول  را در نظر بگیرید . در خروجی تعداد ناصافی های این دنباله را چاپ کنید. (n , k ≤ 106)

 

راهنمایی در ادامه مطلب...

 

دنباله b را چنین تعریف میکنیم که  bi = ai XOR ai-1 باشد. حال با هر بار تغیر دنباله ی (ai , aj) در دنباله b تنها bi  و bj+1 تغییر می کنند . حال گرافی با راس های متناظر با گذاره های دنباله b تشکیل می دهیم طوری که راس متناظر با bi تنها وقتی به bj وصل باشد که بازه ی (a­i , aj-1) در بین بازه ها موجود باشد. حال هر یال نشان دهنده ی یکی از بازه هاست. و هر راس که در دنباله b برابر ۱ باشد نشان دهنده ی یک ناصافی است ٬ ‌پس حال می خواهیم با تغییر عدد دو سر یک یال تعداد راس هایی که عددشان ۱ است را کمینه کنیم... حالا با حل کردن این مساله ٬‌ مساله اصلی حل شده است. (چقد تایپش سخت بود ٬ مردم از بس alt+shift زدم!!!)

  • Hamro

نظرات  (۲)

سلام 
میشه لینک این سوال رو اگه موجود است بذارین ؟ ( که بشه اکسپت گرفت)
پاسخ:
سلام ٬ این سوال دوره تابستون سال ۸۹ بوده ٬ من هرچی گشتم جایی برای سابمیت پیدا نکردم . ولی اگه پیدا کردم حتما لینکشو تو بلاگ می ذارم.
  • مهرداد عرب پور
  • آهان ، باشه 
    پس حالا از خودتون می پرسم :دی بقیه راهش هم داینامیک حل میشه دیگه ؟ (چون گراف موجود درخته ، از ریشه شروع می کنیم و داینامیک می زنیم )
    پاسخ:
    نه بقیه راهش داینامیک نیست ٬ راحت تر فکر کنید :دی

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی