kiriolet
26.11.2022 14:39

Как показало исследование, узор является симпатичным, если в нем нигде не встречается квадрата
2х2 метра, полностью покрытого плитками одного цвета. на рисунке 1 показаны примеры различных
симпатичных узоров, а на рисунке 2 – несимпатичных.
для составления финансового плана директору необходимо узнать, сколько клиентов он сможет
обслужить, прежде чем симпатичные узоры данного размера закончатся. ему!
формат входных данных
на первой строке входного файла находятся два положительных целых числа, разделенные
пробелом - мим (15 м . n < 30 ).
формат выходных данных
выведите в выходной файл единственное число — количество различных симпатичных узоров,
которые можно выложить во дворе размера m x n. узоры, получающиеся друг из друга сдвигом,
поворотом или отражением считаются различными.
примеры:
f.out
f.in
14
22
322
33​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Fazi8833
30.11.2022 09:43

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApp

{

   class Program

   {

       //Объявление  счетчика попаданий

       public int Tochek_Popalo;

       //Метод проверки, входят ли наши точки в окружность, который в конце выдает нам количество вхождений "Tochek_Popalo"

       public int ProverkaVhojdeniya(int[] Massiv_X, int[] Massiv_Y)

       {

           int Schetchik = 0;

           for (int i = 0; i < Massiv_X.Length; i++)

           {

               if (Math.Sqrt((50 - Massiv_X[i]) * (50 - Massiv_X[i]) + (50 - Massiv_Y[i]) * (50 - Massiv_Y[i])) <= 30)

                   Schetchik++;

           }

           Tochek_Popalo = Schetchik;

           return Tochek_Popalo;

       }

       //Просто метод вывода результата на консоль

       public void Vivod_Na_Konsol()

       {

           Console.WriteLine("\nТочек (x,y) попало в окружность: " + Tochek_Popalo);

       }

       static void Main(string[] args)

       {

           int[] x = new int[10]; //Создаем массив ИКСОВ из 10 элементов

           int[] y = new int[10]; //Создаем массив ИГРИКОВ из 10 элементов

           Random RandomZnacheniya = new Random();

           //цикл присваивания случайных элементов в массив [x] от 0 до 100                        

           for (int i = 0; i < x.Length; i++)

               x[i] = RandomZnacheniya.Next(0, 100);

           //цикл присваивания случайных элементов в массив [x] от 0 до 100                            

           for (int i = 0; i < x.Length; i++)

               y[i] = RandomZnacheniya.Next(0, 100);

           //Просто вывод массива [x] на экран циклом "foreach"

           Console.Write("ИКСЫ: ");

           foreach (var item in x)

               Console.Write(" " + item);

           //Просто вывод массива [y] на экран циклом "foreach"

           Console.Write("\nИГРИКИ: ");

           foreach (var item in y)

               Console.Write(" " + item);

           //Создание экземпляра класса  

           Program Peredacha = new Program();

           //Вызов и передача наших массивов в Метод "ProverkaVhojdeniya"

           Peredacha.ProverkaVhojdeniya(x, y);

           //Вызов метода "Vivod_Na_Konsol"

           Peredacha.Vivod_Na_Konsol();

       }

   }

}

Объяснение: Проверь . Вроде все верно работает.  Если что пиши или отметь как верный ответ .


Не могу составить алгоритм/найти в тырнете. Чёрт его знает, не получается запустить. Буду при многом
Не могу составить алгоритм/найти в тырнете. Чёрт его знает, не получается запустить. Буду при многом
Не могу составить алгоритм/найти в тырнете. Чёрт его знает, не получается запустить. Буду при многом
0,0(0 оценок)
Ответ:
kostan555ua
27.08.2022 22:01

Описание алгоритма:

Будем наращивать длину последовательности от 0 знаков до N. Пусть после какого-то количества шагов у нас выписаны все последовательности длины А и мы хотим узнать количество подходящих последовательностей длины А+1. Распределим все последовательности на три группы(так как предыдущие символы нас не волнуют, то любые последовательности одной группы для нас равнозначны):

1) Заканчиваются на 0.

2) Ровно на одну единицу

3) Ровно на две единицы.

Из каждой последовательности группы 1 приписыванием нуля или единицы мы можем получить одну последовательность группы 1 и одну - группы 2. Неважно, какие именно, но они не перекрываются, т.к. предыдущие символы различны, хоть мы их и не учитываем. Точно так же из второй группы мы получаем одну последовательность группы 3 и одну группы 1, а из группы 3 - только группу 1. Таким образом, если количества последовательностей длины А по группам были (x, y, z), то для длины А+1 такое распределение будет (x+y+z, x, y). Если взять для длины 0 тройку (0, 0, 1) и просчитать тройки от 1 до N, получится искомое количество. Для N=1 и N=2 также работает правильно.

Программа на Pascal:

var num00,num01,num11,mem00:integer;

   n,i:byte;

begin

readln(n);

 num00:=1;

 for i:=1 to n do begin

   mem00:=num11;

   num11:=num01;

   num01:=num00;

   num00:=num01+num11+mem00;

 end;

writeln(num11+num01+num00);

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота