Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 04.12.2010, 21:37   #1
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Печаль Задачка

Помогите пожалуста!
Я уже в полном отчаинее
Вобщем есть одна задача.
В программе пользователь вводит число n, а программа выводит число k;
Ну я написал это:
#include <iostream>
using namespace std;

int main()
{
	int n;
	cin >> n;
	cout << (4*n)/3;
	return 0;
}
НО одна проверяющая система сказала
Неверный ответ на тесте 13
Я ВПАНИКЕ!!!11
ЧТО НЕ ТАК
Взарание спасибо
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 22:59   #2
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Радость Ответ: Задачка

эээ, импер, зачем свой пост удалил, он же мне помог

ещё вопросик. последний
Вот задача
Дана куча строк. Далее заданы запросы, представляющие собой некоторые строки. Для каждого префикса каждого запроса необходимо вывести количество строк в куче, которые имеют такое же начало, как и префикс запроса.

Входные данные: В первой строке содержится два целых числа N и М – количество строк в куче и количество запросов. (1 <= N, M <= 105). Далее записаны N строк кучи. Далее содержится строк M запросов. Все строки состоят из маленьких латинских букв. Длина любой строки ввода не превышает 21 символ.

Выходные данные: Для каждого запроса выведите в отдельной строке L чисел через пробел, где L – длина строки запроса. Каждое i-ое число должно содержать ответ задачи для префикса длины i строки запроса.

Пример входных данных
3 4
abacaba
dabaduba
abad
abac
aba
dab
adcb

Пример выходных данных
2 2 2 1
2 2 2
1 1 1
2 0 0 0
вот мой код:
#include <iostream>
#include <string>
using namespace std;

string str_masN[100001], str_masM[100001];

int main()
{
    
int nm;
    
cin >> >> m;
    for(
int i 0ni++)
        
cin >> str_masN[i];
    for(
int i 0mi++)
        
cin >> str_masM[i];
    
    for(
int i 0mi++)
    {
        
int size  str_masM[i].size();
        const 
char buf str_masM[i].c_str();
        for(
int j 1<= sizej++)
        {
            
int nn 0;
            for(
int k 0nk++)
            {
                if(
str_masN[k].find(buf0j) == 0)
                    
nn++;
            }
            if(
nn == 0)
            {
                for(
int l 0size 1l++) cout << << ' ';
                break;
            }
            
cout << nn << ' ';
        }
        
cout << endl;
    }
    return 
0;

он абсолютно рабочий, но сцуко на 165 мс больше положенного времени выполняется
Как ещё его можно оптимизировать?
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 00:27   #3
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Задачка

Ну, во-первых, зачем такой большой размер массивов:
string str_masN[100001], str_masM[100001];
Ведь в условии сказано максимальный размер, так сделай так:
string str_masN[105], str_masM[105];
Это тоже влияет на быстродействие
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (05.12.2010)
Старый 05.12.2010, 01:35   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Задачка

Может, для быстродействия не стоит юзать класс string ? В задании было что-то по этому поводу? (в код не вникал особо)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (05.12.2010)
Старый 05.12.2010, 10:39   #5
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Задачка

baton4ik, то не 105, то 10^5
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 18:07   #6
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Задачка

Вот есть динамический массив:
string *mas = new string[n];
как сделать чтоб элементами массива были не string, а char[24] ?
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 18:13   #7
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Задачка

А можно чуть чуть поподробней

UPD - эээ, импер, это чо новая фишка штоли, удалять свои посты?
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 18:56   #8
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Задачка

да не - старая
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
den (05.12.2010), pax (05.12.2010)
Старый 08.12.2010, 20:14   #9
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Задачка

Есть два char массива: "qwerty" и "qweaty".
Как видно, последний совпавший символ у этих строк - e - 2 символ(если от 0 щитать).
Как наиболее быстро (важно каждая мс) увеличить каждый элемент c 0 до 2 (в данном случае) другого int массива на 1?
Только не говорите типо сам делай, это просто. Я знаю. Но я повторюсь вожна каждая милдисекунда
(Offline)
 
Ответить с цитированием
Старый 08.12.2010, 20:31   #10
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Задачка

char a[];
char b[];
int i[];
int c=0;// индекс массива
while(a[c]==b[c]) i[c++]++;
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (08.12.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:01.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com