IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сумма, драгоценные камни, Олимпиадная задача с ВКОШП 2008
Zzzz...
сообщение 24.11.2008 21:11
Сообщение #1


///
**

Группа: Пользователи
Сообщений: 78
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Добрый день!
Кто-либо может объяснить задачу Е и задачу J. Буду очень признателен...

В прикрепленном файле находятся все задачи с ВКОШП'а.


Прикрепленные файлы
Прикрепленный файл  problems.pdf ( 270.35 килобайт ) Кол-во скачиваний: 501
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Zzzz...
сообщение 25.11.2008 19:08
Сообщение #2


///
**

Группа: Пользователи
Сообщений: 78
Пол: Мужской
Реальное имя: Илья

Репутация: -  0  +


Цитата
1. Главная ошибка - ты не убираешь найденные камни из списка. Это нужно. Если не так - не было бы смысла в повторяющихся камнях в списке.


Т.е. если такой прмер

7 1
abacaba
ab

То когда я 1-ый раз нашел камни и увеличил q, то последовательность должна измениться и иметь вид acaba?

Цитата
2. Тип string явно недостаточен для хранения списка из 100000 камней


Можно взять массив char.

Цитата
3. Зачем ты сравниваешь x c j и x c i? Для второго достаточно начать цикл с i+1, а первое просто неверно (вредно).


В моём решении нужно начинать с i, т.к. если с i+1 не все камни учитываются. Сравниваю чтобы не было увеличения числа q. Например без этого условия:

7 1
abacaba

- мое решение выдаст ответ 10.

Цитата
4. Скорость. Все надо организовывать не так..


По скорости согласен очень долгое решение. Просто это первый вариант, который пришел в голову.



Цитата
Сделай массив
gems: array[a..z]of LongInt;
Пройдись по входному списку и заполни gems количествами каждого камня.
Потом иди по парам, и


if (gems[a[i]]>0)and(gems[b[i]]>0) then begin
Inc(p);
Dec(gems[a[i]]);
Dec(gems[b[i]])
end;



Вот, примерно так..


Хм... а сколько будет, например

7 1
abacaba
ab

просто я не совсем понял твою идею.

У меня есть такой вариант:

7 2
abacaba
ab
ac


создать двумерный массив, который будет запоминать все позиции каждой буквы...т.е.
a b c d...z
1 2 4 0 0
3 6
5
7

И смотрим
ab 1<2 увеличиваем q, 1<6 увеличиваем q, 3<6 увеличиваем q, 5<6 увеличиваем q
ac 1<4 увеличиваем q, 3<4 увеличиваем q




Про сумму J я пока еще не думал, как ее можно решить, но пройдет ли твое решение по времени?



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"