Динамическое программирование - C#

Узнай цену своей работы

Формулировка задачи:

Задание 1. В прямоугольной таблице NxM (в каждой клетке которой записано некоторое число) в начале игрок находится в левой верхней клетке. За один ход ему разрешается перемещаться в соседнюю клетку либо вправо, либо вниз (влево и вверх перемещаться запрещено). При проходе через клетку с игрока берут столько у.е., какое число записано в этой клетке (деньги берут также за первую и последнюю клетки его пути). Требуется найти минимальную сумму у.е., заплатив которую игрок может попасть в правый нижний угол. Входные данные Во входном файле INPUT.TXT задано два числа N и M – размеры таблицы (1 ≤ N ≤ 20, 1 ≤ M ≤ 20). Затем идет N строк по M чисел в каждой – размеры штрафов в у.е. за прохождение через соответствующие клетки (числа от 0 до 100). Выходные данные В выходной файл OUTPUT.TXT выведите минимальную сумму, потратив которую можно попасть в правый нижний угол. Пример INPUT.TXT OUTPUT.TXT 3 4 1 1 1 1 5 2 2 100 9 4 2 1 8

Решение задачи: «Динамическое программирование»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tablicalab6msd
{
    class Program
    {
        static void Main(string[] args)
        {   int s=2, st=2;
            int i, j;
            int[,] mas = new int[s, st];
            int c=0,sum;

            Console.WriteLine("Введите элементы матрицы:");
            for (i = 0; i < s; i++)
            {

                for (j = 0; j < st; j++)
                {
                    mas[i, j] = int.Parse(Console.ReadLine()); 
                }
            }
 
            
            for (i = 0; i < s; i++)
            {

                for (j = 0; j < st; j++)
                {
                    sum=mas[i,j]+=Min(mas[i,j-1],mas[i-1,j])+mas[i,j];
                    //if (mas[i, j + 1] < mas[i + 1, j]) { j++; mas[i, j+1] =c; }
                    //else { i++; mas[i+1,j]=c; }
                }
            }
            Console.WriteLine(sum);
           
            Console.ReadLine();

        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы