اولین باره که به کاهو میای؟ راهنمای سایت رو حتما بخون!
در این قسمت میتونی به یک پرسش پاسخ بدی. اگه میخوای در مورد پرسش بحث و اظهار نظر کنی از قسمت «ثبت نظر» استفاده کن.
پاسخت رو دقیق و کامل بنویس، از عکس استفاده کن و اگه لازمه به منابع (کتاب یا سایت) ارجاع بده.
اگه پرسش یا پاسخها مفید هستند حتما بهشون رای بده تا پرسشها و پاسخهای خوب مشخص بشن.
توی قسمت پیشنمایش میتونی ببینی متنی که نوشتی چجوری روی سایت دیده میشه.
خیلی مهم: برای اینکه به خط بعد بری باید دوتا Enter بزنی.
میتونی از تگهای معمولی و سادهی html هم استفاده کنی.
با دکمههایی که بالای ویرایشگر قرار دارند کلی کار میشه کرد. از عکسگذاشتن بگیر تا لیست شمارهدار. حتما امتحانشون کن.
برای نوشتن علائم ریاضی میتونی از Mathjax استفاده کنی.
راهنمای Mathjax رو از سایت
math.stackexchange
بخون.
برای نوشتن عبارت ریاضی وسط جمله، اون عبارت رو بین دوتا $ قرار بده.
برای نوشتن عبارت ریاضی تو یه خط جدید اون رو بین دوتا $$ قرار بده.
https://cdn1.imggmi.com/uploads/2019/6/6/eed56c4b1ed552bc1f816e3c99f169b7-full.jpg
قسمت اول که میشه با یه دایمنامیک ساده از پایین چپ به بالا راست رفت اما قسمت دوم رو می خواستم بدونم با کمتر از O(n^4 پیدا کرد؟ ممنون میشم کمک کنید.
توضیح الگوریتم:
با دیکسترا میتونی توی $O(n^2lg(n^2))$ جواب رو پیدا کنی.
به این صورت که بیای یه گراف جهت دار $n^2$ راسی متانظر با ماتریس بسازی بطوری که هر راسش متناظر با یکی از خونه های ماتریسه و بین هر دو راسی که خونه های متناظرشون توی ماتریس همساین دو تا یال بکشی(یکی از این به اون و یکی از اون به این D:). حالا وزن یالی که به راس $v$ وارد میشه رو برابر با عدد خونه ی متناظر با راس $v$ در نظر میگیری. حالا با یه دیکسترا ی ساده میتونی توی این گراف کوچکترین مسیر از $P_{1,1}$ به $P_{n,n}$ پیدا کنی.
توضیحات کد:
توی کد ماتریس رو توی آرایه ی 2بعدی M
ذخیره میکنیم. بعدش داخل وکتور 2بعدی v
گراف متانظر ذخیره میشه. تابع dijkstra
هم الگوریتم دیکسترا رو اجرا میکنه. درآخر بدلیل اینکه برای رفتن از $P_{1,1}$ به $P_{n,n}$ باید از خود $P_{1,1}$ هم عبور کنیم مقدار درایه ی $(1,1)$ هم به جوابمون اضافه میشه.