Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:مرحله ی دوم:دوره ی ۳۴:سوالات ۱۹ و ۲۰

سوالات ۱۹ و ۲۰

مارال جایگشتِ n,تاییِ تماما صعودیِ 1,2,3,,n1,n را دارد و می‌خواهد آن را با تعدادی حرکت، به جایگشتِ تماما نزولیِ n,n1,,3,2,1 تبدیل کند.

او در هر حرکت، می‌تواند مانند شکل زیر، سه جایگاهِ (i,j,k) را با شرطِ i<j<kn در جایگشت خود انتخاب کند و اعدادِ این سه جایگاه را در آن، دَوَران دهد؛ یعنی عدد جایگاهِ jاُم را به جایگاهِ iاُم ببرد، عدد جایگاهِ kاُم را به جایگاهِ jاُم ببرد، و عدد جایگاهِ iاُم را به جایگاهِ kاُم ببرد.

مثلا با فرضِ داشتنِ جایگشتِ 3,6,5,4,1,2 ، اگر او سه جایگاهِ (2,3,6) را برای حرکتِ دوَران انتخاب کند، بعد از انجام این حرکت، به جایگشتِ 3,5,2,4,1,6 می‌رسد.

سوال ۱۹

به‌ازای چند عدد صحیحِ n در محدوده‌ی 2000 تا 2025 (شامل هر دوی این اعداد)، مارال می‌تواند با انجام تعدادی حرکت دوَران، جایگشتِ n تاییِ تماما صعودیِ خود را به جایگشتی تماما نزولی تبدیل کند؟

  1. 14
  2. 13
  3. 0
  4. 26
  5. 17

پاسخ

گزینه (1) درست است.

انجام این دَوَران معادل انجام دو جابه‌جایی (swap) است. به این شکل که ابتدا pi را با pj جابه‌جا می‌کنیم، سپس pj را با pk جابه‌جا می‌کنیم.

با انجام این دو جابه‌جایی می‌بینیم که اعداد مشابه دَوَران جابه‌جا می‌شوند. حال توجه کنید که در ابتدا، تعداد نابه‌جایی‌های دنباله معادل انتخاب دو از n است. هر جابه‌جایی (swap) زوجیت تعداد نابه‌جایی‌ها را تغییر می‌دهد، بنابراین هر دَوَران زوجیت تعداد نابه‌جایی‌ها را ثابت نگه می‌دارد. زوجیت تعداد نابه‌جایی‌ها در انتهای فرآیند زوج (صفر) است، بنابراین اگر در ابتدا فرد باشد این کار ممکن نیست. تعاداد انتخاب از دو از n برای n‌های به شکل 4k و 4k+1 زوج است و برای بقیه فرد است.

حال ثابت می‌کنیم این کار برای n=4k یا n=4k+1 ممکن است. این مسئله را با استقرای ریاضی ثابت می‌کنیم:

پایه: برای k=0 این موضوع مشخص است.

گام: اگر فرض کنیم این کار برای n ممکن است، ثابت می‌کنیم اینکار برای n+4 نیز ممکن است. ابتدا جای 1 را با n و جای 2 را با n1 تغییر می‌دهیم. این کار را مطابق شکل زیر انجام می‌دهیم.

سپس بازه‌ی 3 تا n2 را با استفاده از فرض استقرا برعکس می‌کنیم. با این کار گام استقرا ثابت می‌شود. تعداد اعدادی که به شکل 4k+1 یا 4k هستند و در بازه‌ی خواسته شده قرار دارند، 14 عدد است.

سوال ۲۰

به‌ازای n=3333، مارال حداقل چند حرکت دوَران نیاز دارد تا بتواند جایگشتِ n تاییِ تماما صعودیِ خود را به جایگشتی تماما نزولی تبدیل کند؟

  1. 1111
  2. 2499
  3. 1113
  4. 1666
  5. 2222

پاسخ

گزینه (4) درست است.

اگر به روش گرفته شده در سوال قبل عمل کنیم، با 1666 حرکت می‌توان اعداد را برعکس کرد. برای هر 4 عدد باید 2 دَوَران انجام داد. بنابراین با 1666 حرکت می‌توانیم به هدفمان برسیم.

چرا با کمتر از این مقدار نمی‌توانیم به هدفمان برسیم؟ هر دَوَران دقیقاً یک عدد را یک جایگاه جلوتر از جایگاه فعلی‌اش می‌برد. در جایگشت اعداد 1 تا 1666 هر عدد باید به جایگاهی جلوتر از خود منتقل شود. بنابراین به حداقل 1666 دَوَران نیاز داریم.


ابزار صفحه