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

Оптимизация робота - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кодировки (ошибки кодировки) в логировании http://www.cyberforum.ru/cpp-beginners/thread1243095.html
Здравствуйте. Работаю с WINAPI и оттуда нормально приходят наименования на русском. Вот решил логирование организовать и на этом повалился (приходят символы как при проблеме с кодировкой). Вопрос: перед посылкой придется использовать какую-то обработку по перекодировке? Очень простой пример (вырвано из кода только то что нужно): void ToLog(wstring str){ wcout << str << endl; } int main(int...
C++ Текст в панели задач Windows Какие есть функции для вывода текста на панель задач? http://www.cyberforum.ru/cpp-beginners/thread1243091.html
C++ Ошибка передачи параметра в функцию
#include "stdafx.h" #include "War.h" int _tmain(int argc, _TCHAR* argv) { War warv("Battle"); warv.addWarrior(Barracks::createWarrior("Archer",warv),100); warv.LetTheWarBegin(); } Выскакивает ошибка error C2676: бинарный "Добавлено через 47 секунд
C++ Вычисление времени полета тела
Написать программу для вычисления времени полета тела, брошенного под углом к горизонту. Начальная скорость тела равно V и направлена под углом alpha к горизонту. Для вычисления использовать дискретную модель. Может кто подскажет как использовать дискретную модель? Поскольку ни в школе, ни на первом курсе не слышал. Написал как думал, но возможно что какой то бред)) #include<iostream>...
C++ Каков порядок изучения тем для более успешного освоения языка http://www.cyberforum.ru/cpp-beginners/thread1243054.html
Добрый день, программисты. Хочу посоветоваться у вас вот по какому вопросу, но сначала скажу следующее: Изучаю C++ пол года, изучал пол года C#, что собой представляет ООП знаю, основы C++ тоже знаю, а именно: классы/методы, указатели, структуры, массивы, в целом, долго продолжать, основу знаю, а вопрос следующий: Посоветуйте, пожалуйста, порядок изучения тем, чтобы дальше мог развиваться...
C++ Как работать с библиотекой VMIME? Привет, может кто рассказать как работать с библиотекой VMIME ? как ее вообще установить ? подробнее

Показать сообщение отдельно
Deligor
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 30
15.08.2014, 21:26     Оптимизация робота
Написал вот эту задачу:

Робот
Имя входного файла: robot.in
Имя выходного файла: robot.out
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта
В исследовательской лаборатории фирмы Robots&Co разработали новую мо-
дель робота. Главной особенностью данной модели робота является то, что он ра-
ботает по заранее заданной программе, в которой могут присутствовать команды:
сделать шаг на Юг, на Север, на Восток или на Запад. Робот исполняет программу
строго последовательно и, дойдя до конца программы, останавливается. Специа-
листы из Robots&Co заинтересовались вопросом, сколько существует различных
программ, состоящих из K инструкций, таких, что робот, выйдя из начала ко-
ординат, придет в точку с координатами (X, Y ). Оси координат располагаются
параллельно сторонам света, и единица измерения, соответствует одному шагу
робота. Напишите программу, которая дает ответ на этот вопрос.

Формат входных данных
Во входном файле находятся три числа K, X и Y (0 6 K 6 16, |X|, |Y | 6 16),
разделенные пробелами.

Формат выходных данных
В выходной файл ваша программа должна поместить одно число - количество
программ для робота.

Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <fstream>
#include <cmath>
 
using namespace std;
 
ifstream fin;
ofstream fout;
 
int F(int x, int y, int k){
    if(abs(x)>k || abs(y)>k || abs(x+y)>k)
        return 0;
    if(k==0)
        if(x==0 && y==0)
            return 1;
        else
            return 0;
    return F(x-1, y, k-1) + F(x+1, y, k-1) + F(x, y-1, k-1) + F(x, y+1, k-1);
}
 
int main(){
    fin.open("robot.in");
    fout.open("robot.out");
    int K, X, Y;
    fin >> K >> X >> Y;
    fout << F(X, Y, K);
    return 0;
}
Выдает Time Limit на 6 тесте.
Уважаемые знатоки, подскажите, как оптимизировать программу. Заранее благодарю!

Добавлено через 9 минут
Цитата Сообщение от Deligor Посмотреть сообщение
Формат входных данных
Во входном файле находятся три числа K, X и Y (0 6 K 6 16, |X|, |Y | 6 16),
разделенные пробелами.
Здесь должно быть "три числа K, X и Y (0 <= K <= 16, |X|, |Y| <= 16)". Кодировка сломалась...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru