Shunday qilib, variantlarni to'liq ro'yxatga olish imkoniyati cheklangan.
Keling, masalani hal qilishning boshqa usulini ko'rib chiqaylik. Kichikroq o'lchamdagi jadval uchun kichik masalani aniqlaymiz.
2
3
6
6
2
3
6
6
6
7
7
8
8
Natija quyidagicha
2
3
6
11
6
6
7
12
7
8
8
13
7
9
11
20
Masalani yechish algoritmi:
B[4×4] matritsasini kiritamiz.
Birinchi qator va birinchi ustun elementiga 0 ni belgilaymiz.
0
0
0
0
0
0
2
3
0
6
6
0
0
Dastur kodi: // “Toshbaqa” masalasi
//Mksimal yo’lni hisoblash masalasi
#include #include using namespace std;
Yechimning vaqt murakkabligi 0(n×m) ga teng. Har bir massiv B maksimal ikkita amalni (taqqoslash va qo'shish) talab qiladi.
300x300 massiv uchun operatsiyalarning umumiy soni 1000000 dan kam, ya'ni. million tezlikda ishlaydigan kompyuter vazifani bir soniyadan kamroq vaqt ichida bajarishi mumkin.
2-masala. sonlar ketma-ketligi berilsin.
Eng katta uzunlikdagi ortib boruvchi qatorni toping.
Kirish ma'lumotlari: 1, 5, 3, 7, 1, 4, 10, 15.
Chiqish ma'lumotlari: 1, 3, 4, 10, 15.
“Dag’al” kuch usuli.
1 (1) - 1 bitta kichik ketma-ketlik uchun.
1,2 (1; 2; 1, 2) - 3 uchun uchta kichik ketma-ketlik mavjud.
1,2,3 da (1; 2; 3; 1, 2; 1,3; 2,3; 1,2,3) - 7 ta kichik ketma-ketlik.
1,2,3,….,n uchun alohida pastki ketma-ketliklar soni ga teng.
Kichik vazifalarga ajratish
Fikr birinchi i elementlar orasidan eng katta ortib boruvchi ketma-ketlikni toping.
#include