ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1135. Recruits

Idea O(N)
Posted by Felix_Mate 22 Jul 2015 12:58
Я долго бился с этой проблемой несмотря на то,что сложность <200. Я пытался решить с помощью ДП,но там очень много случаев и сложная реализация. Задачу можно решить логически: во-первых,первые символы "<" и последние символы ">" ни на что не влияют,поэтому удалим их; во-вторых,если слева есть хоть один ">",то он в ЛЮБОМ случае будет меняться с КАЖДЫМ "<" РОВНО один раз(если "<" существует). Т.е. нас не интересует конструкция строки. Нас интересуют числа Z[1],E[1],Z[2],E[2],...Z[p],E[p],где Z[i] -количество ">" в последовательности 00000000...00000,а E[i]- количество "<" в последовательности 11111....11111111. Т.е. нашу строку делаем в виде 00...0011..1100..0011..11........00..0011..11,где P чередований (я ">" заменил на "0",а "<" на "1")
. Тогда ответ есть Z[1]*(E[1]+...E[p])+Z[2]*(E[2]+..+E[p])+...+Z[p]*E[p]. Сумму можно посчитать через частичные с помощью ДП. Асимптотика O(N).
Re: Idea O(N)
Posted by BZz13 28 Nov 2015 22:15
madness :D
Re: Idea O(N)
Posted by Combatcook 22 Jul 2016 20:49
Imho, it can be solved by easier way. Let's create the array, where put 0 instead of '<' and 1 instead of '>'. Then answer is number of swaps in bubblesorting of this array.
Re: Idea O(N)
Posted by Filip Franik 6 Feb 2017 19:24
I went exactly this way and my solution looks very easy!
>><<><
110010 | counter = 0
Now we go from the right and move every 1 all the way to the right and count the moves
(we don't need to actually move anything but you can see everything better this way)
110001 | counter = 1[4->5]
100011 | counter = 1 + 3[1->4]
000111 | counter = 1 + 3 + 3[0->3] = 7
I got AC with this O(n)
Re: Idea O(N)
Posted by Zteeks 2 Jun 2017 01:06
Thank all of you) Very helpful! Get my AC using this solution
Re: Idea O(N)
Posted by Mahilewets 3 Jun 2017 15:18
Moving?  Overkill.
Just count how many inversions are there.  I don't remember exactly,  which symbol,  '<'  or '>',  should be considered as 1 and which as 0. Don't even try to memorize the sequence.  Just have a  counter and increment it each time when encountered 1 and add counter value to answer each time when encountered 0.