mihalewanadia20176987
?>

Решить логическую задачу. Задача "Сокровища пиратов". НА необитаемом острове пираты откопали клад: два одинаковых на вид сундука. В одном из сундуков находятся золотые монеты. На пиратский корабль может поместиться только один сундук. Сундуки из глубокой ямы достают с корабельного крана и ставят на корабельные весы пиратам определить, какой сундук с золотом, а какой пустой

Информатика

Ответы

Yelfimova-andrei

какой сундук больше будет весить тот и с золотом.

Объяснение:

agutty3
Unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
 begin
  Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  Image1.Stretch:=true;
  Image1.Left:=form1.Width div 2-image1.Width div 2;
  Image1.top:=form1.Height div 2-image1.Height div 2;
 end
end;

end.
kuznecovav3066

Так как речь идет о таблице, то лучше перебрать рекурсивно. Логично, что количество путей для клетки (i,j) - это количество путей для правой соседней клетки + количество путей для нижней соседней клетки.

При таком условии мы будем посещать те же клетки слишком часто, однако значение для них меняться не будет. Имеет смысл вычислить их единожды и запомнить для последующих использований. (На самом деле, достаточно иметь буфер вместимостью всего в 6 элементов, но мы сделаем полное запоминание).

(Иллюстрация 3 - таблица кэша)

Иллюстрации кода и возможного вывода прикреплены в дополнительных материалах.

========================

Ваши оценки и отзывы позволяют лучше оценить качество ответа.

Если ответ удовлетворил, не забудь отметить его как "Лучший".

Успехов в учёбе!

========================

Код:

cache = {}

def calculate_max_way_price(x: int, y: int, m:int, n:int):

  if (x, y) in cache:

      return cache[(x, y)]

  x_way, y_way = 0, 0

  if x < m - 1:

      x_way = calculate_max_way_price(x + 1, y, m, n)

  if y < n - 1:

      y_way = calculate_max_way_price(x, y + 1, m, n)

  if x == m - 1 and y == n - 1:

      cache[(x, y)] = 1

      return 1

  cache[(x, y)] = x_way + y_way

  return x_way + y_way

N = int(input())

M = int(input())

print(calculate_max_way_price(0, 0, N, M))


написать программу на питон: Количество маршрутов в прямоугольной таблице В прямоугольной таблице N×
написать программу на питон: Количество маршрутов в прямоугольной таблице В прямоугольной таблице N×

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Решить логическую задачу. Задача "Сокровища пиратов". НА необитаемом острове пираты откопали клад: два одинаковых на вид сундука. В одном из сундуков находятся золотые монеты. На пиратский корабль может поместиться только один сундук. Сундуки из глубокой ямы достают с корабельного крана и ставят на корабельные весы пиратам определить, какой сундук с золотом, а какой пустой
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

omigunova39
tanias
АлександровнаВладимирович1424
Информатика 8кл, можно ответ и краткое пояснение​
dmitzu8594
Grishanin
bogdanovaoksa
elmira01048775
zigrin
Olegovich Nikolaevna
Svetlana ALLA
Катерина Телюкин925
gorbunova188
arturnanda803
m-zolotukhina2
Lolira64