Всем привет.
Сегодняшний контест представляем мы: cerealguy и yaro. Некогда мы учились в одной школе, и с нами учился замечательный мальчик Володя. Именно он будет героем сегодняшнего контеста.
Володе предстоит побывать на кухне, посетить музей, попытаться взломать сейф, отправиться в необычный город и, наконец, использовать свои магические способности.
Хочется выразить благодарность команде Codeforces и особенно Артему Рахову за помощь в подготовке контеста и написание альтернативных решений.
Надеемся, задачи придутся вам по вкусу.
Удачи!
Обновление. Частичный разбор задач.
Сегодняшний контест представляем мы: cerealguy и yaro. Некогда мы учились в одной школе, и с нами учился замечательный мальчик Володя. Именно он будет героем сегодняшнего контеста.
Володе предстоит побывать на кухне, посетить музей, попытаться взломать сейф, отправиться в необычный город и, наконец, использовать свои магические способности.
Хочется выразить благодарность команде Codeforces и особенно Артему Рахову за помощь в подготовке контеста и написание альтернативных решений.
Надеемся, задачи придутся вам по вкусу.
Удачи!
Обновление. Частичный разбор задач.
also in chess you cant kill a piece with a king if it is defended by another same color piece.
If someone has test 7 for problemC(yes, 7 was my unlucky number today) It would be great.
Thanks in advance, and thanks to the setters for the nice problems!!!!
c2 b3 h8 a1 OTHER
Thanks for taking the time man. I guess I should have spent that last ten minutes testing trying to hack myself instead of trying to hack others :).
разве не -1 правильный ответ для этого теста? (и мне досталось от тебя :) )
Я сделал просто рекурсией с запоминанием, и все прошло.
Этот метод относится к разделу генетических алгоритмов, которые пытаются найти глобальный максимум(минимум) у какой либо функции.
Вот неплохая показательная статья http://habrahabr.ru/blogs/artificial_intelligence/66121/ .
PS Хм, я думал, что кол-во состояний ДП будет быстро расти, может быть Вы использовали какие-либо отсечения?
А отсечение единственное: если предыдущая операция инкремент (возможно нескольких пар одновременно), то текущая операция - только деление.
1 1 1 2
+1
/4
+4
/1
+2
+1
/3
+3
/4
+1
/1
/2
http://mirror.codeforces.com/profile/tourist
I think greedy works here.
-If you have an even number > 1 between two odd numbers -> -1
-If you have an odd number > 1 between two even numbers -> -1
If you don't then you must either:
1)do a division, or
2) a sum and a division
for any pair of numbers that need it.
repeat this until you end with 1 1 1 1
While you have a number different from 1:
1) Find the maximal number.
2) If it is even and has an even neighbour, divide. Otherwise, if it is odd and has an odd neighbout, increase them both, otherwise increase and any of it's neighbours.
Why does it work: Each time before you divide, the total sum increases by 4 (after you make 2 additions, you're guaranteed to divide). So, with each division the total sum decreases (compared to the sum after the previous division) unless the biggest number is 4 and is surrounded by 2 odd ones. Those are not many cases, I just wrone the program and tested all of them - received answers on all. If anyone can give a better proof, you're welcome.
c1 c2 d1 f1
#12:
b3 a8 c2 a3
Borscht aint Russian traditional soup. It originates from Ukraine
Russia and Ukraine still have no cultural border.
There are more differences between eastern and western Ukraine then between eastern Ukraine and Russia.