Форум программистов, компьютерный форум CyberForum.ru

Решение задачек (Всероссийской олимпиаде школьников по информатике) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите найти ошибку в моей программе http://www.cyberforum.ru/cpp-beginners/thread734406.html
#include<iostream.h> #include<conio.h> #include<math.h> struct uravn {double a, b, e; void define (double a1=0.0, double b1=0.0, double e1=0.001) {a=a1; b=b1; e=e1; }
C++ 3) Напишите программу, которая: преобразует массив по следующему правилу (через x' обозначены элементы массива x после преобразования):упорядочив Напишите программу, которая:преобразует массив по следующему правилу (через x' обозначены элементы массива x после преобразования):упорядочивает каждую пару элементов, так что x'єx' i=1,3, 5,... http://www.cyberforum.ru/cpp-beginners/thread734401.html
C++ Нужна простая очередь с комментариями, пож!
Нужно написать простую очередь, от начала и до конца, а то я не врубаю что это, точнее врубаю в теорию, а как это реализуется не знаю, помогите.
Кольцевой сдвиг в массиве C++
Объясните как работает и как примерно делать не понимаю сам((( нашел пример,но не знаю что делают некоторые переменные + некоторые моменты у самого задание такое:Дан массив действительных чисел размером N и целое число К. Если в исходном массиве чисел больше чем К, то в исходном массиве выполнить кольцевой сдвиг его элементов так, чтобы первый максимальный элемент этого массива оказался на ...
C++ Помогите найти ошибку в программе (класс комплексных чисел) http://www.cyberforum.ru/cpp-beginners/thread734390.html
1. Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для него конструктор по умолчанию, конструктор инициализации и конструктор преобразования. 2. Определить функции-члены класса для ввода и вывода членов-данных внутри объявления класса. 3. Составить программу, которая определяет четыре объекта класса и выводит их на экран. Первый объект должен...
C++ Найти минимальные элементы в столбцах массива Доброго времени суток! Задача такая: нужно вывести двумерный массив, найти столбцы, в которых есть одинаковые элементы, в этих столбцах найти минимальные элементы и из них сформировать одномерный массив. Массив я сформировал и нашел столбцы с одинаковыми элементами. А вот остальное сделать не получается. Помогите) Вот код: #include <stdafx.h> #include <iostream> #include <time.h> ... подробнее

Показать сообщение отдельно
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
18.12.2012, 17:22     Решение задачек (Всероссийской олимпиаде школьников по информатике)
Цитата Сообщение от Andryuxa Посмотреть сообщение
Дана доска размера N на M. На доске есть плохие клетки, обычные клетки, и стоят два короля. По правилам игры короли по очереди ходят (так же как в шахматах на любые 8 соседних клеток, но не на соседние с другим королем), нельзя наступать на плохие клетки. Цель игры за минимальное количество ходов короли далжны поменяться позициями. За 1 ход считается именно ход одного короля. Первым ходит белый король.
На входа дается
Числа N M - размер доски
Далее в N строках по M символов дается доска, где символ * - плохая клетка, символ _ - обычная клетка, W -начальное положение белого короля, B - черного.
Программа должна найти минимальное количество ходов или вывести фразу Impossible если невозможно решить.
пока могу сказать только алгоритм ибо из за сессии пока некогда писать =с

Смысл такой, ну плохие клетки задаются рандомно пусть. там скажем проходим через всю матрицу полей и с шансом 10% у нас будет плохая клетка.
далее ход короля (любого)
рекурсия я думаю должна представлять такой вариант

Если достиг цели и второй король не достиг цели откатить шаг к предыдущему.
ну соответственно если оба достигли вывести сообщение со все информацией.
пробовать шаг вперед вызвать функцию с шагом в перед (про пробу чуть ниже)
пробовать шаг вправо вверх вызвать -\\-
пробовать влево вверх вызвать -\\-
пробовать вправо вызвать -\\-
пробовать влево вызывать -\\-
пробовать враво назад вызвать -\\-
пробовать влево назхад вызвать -\\-
пробовать назад вызвать -\\-

что касается пробы т.е. проверяем наступаем ли мы на плохую клетку или нет если нет двигать короля.
что касается шага. двигая короля мы запоминаем пространство вокруг будущей клетки на предмет плохой обычной
покрываем это пространство плохими клетками видимыми толко для короля противника шагаем в эту клетку на предыдущую територию откатываем територию которая была запомнена на предыдущем ходе
PROFIT!!!!!!!!!
Но это действительно жесть, её отлаживать заколебаешься =)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru