aropan's blog

By aropan, 12 years ago, translation, In English
Div-2. 124A - The number of positions
Let's iterate through the each item and check whether it is appropriate to the conditions a ≤ i - 1 and n - i ≤ b (for i from 1 to n). The first condition can be converted into a + 1 ≤ i, and the condition n - i ≤ b in n - b ≤ i, then the general condition can be written max(a + 1, n - b) ≤ i and then our answer can be calculated by the formula n - max(a + 1, n - b) + 1.
The author's solution

Div-2. 124B - Permutations

Let's try all possible ways to rearrange digits in the numbers and check the difference between maximum and minimum number.
The author's solution

Div-1. 123A - Prime Permutation
Div-2. 124C - Prime Permutation

All positions except the first and those whose number is a prime greater |s| / 2 have to have the same symbol. Remaining positions can have any symbol. Consider positions that should be the same for p = 2 is 2,4,6,8 ... Now let's take a position with the number x ≤ |s| / 2, this position should have the same character as the position of 2 as the symbol x must be equal to the character at position 2 * x, which is equal to the character at position 2. Now consider the position whose number is more than |s| / 2. If this position is not a prime then there is a prime number p to divide the number at our positions and p ≤ |s| / 2. So character at position p is equal the character at position 2 and so a symbol at our position is also consistent to the character at position 2. The remaining positions are not combined with any other positions so it does not matter which symbol is situated here.
Let's find the symbol which occurs the most and try to place the symbol on the position in which the characters have to be equal. If this symbol for all positions is not enough then the answer will be "NO", otherwise arrange the remaining characters by any way at other positions.
The author's solution

Div-1. 123B - Squares

Div-2. 124D - Squares
Let's turn the field on 45o transforming cells coordinates (x, y) in (x + y, x - y). Then the cell (x, y) will be bad if one of the conditions occurs x ≡ 0 (mod 2a) or y ≡ 0 (mod 2b). So good cells will be divided into sectors by vertical and horizontal lines. For each sector, it is possible to determine the coordinates of a pair of numbers, the first number that will rise during the transition to the next right sector, and the second pair number will increase during the transition to the next upper sector. From the sector with coordinates (x, y) can go to any nearby on the side of the sector, visiting at least one bad cell, ie in (x - 1, y), (x + 1, y), (x, y - 1) and (x, y + 1). Since the numbers 2a and 2b have the same parity, then from the sector (x, y) can also go to the sector on the diagonal, and visiting a bad cell, ie in (x - 1, y + 1), (x + 1, y - 1), (x - 1, y - 1) and (x + 1, y + 1). Then it turns out that the minimum number of bad cells, which should be visited on the way out of from the sector (x1, y1) to sector of (x2, y2) equals max(|x1 - x2|, |y1 - y2|).
Let's transform the coordinates of the initial and final cells as described rule above. Then find sectors which contain our cells and calculate answer with formula above.
The author's solution

Div-1. 123C - Brackets

Div-2. 124E - Brackets
Let's reduce the problem to a one-dimensional matrix. Consider a monotonous path (1, 1), (1, 2), ..., (1, m - 1), (1, m), (2, m), ..., (n - 1, m), (n, m) which has correct bracket sequence. Now, in this way a cell (1, m) can be replaced on (2, m - 1) and still be a monotonous way and will form the correct sequence of the bracket. So in the cells of (1, m) and (2, m - 1) is one type of bracket. Proceeding further (eg to replace (1, m - 1) on (2, m - 2) or (2, m) on (3, m - 1)) can be seen that in cells (i, j) and (i - 1, j + 1) is one type of bracket. Then we get not two-dimensional array n × m, a one-dimensional size n + m - 1. For each position can be determined what her highest priority, ie for cell i (1 ≤ i ≤ n + m - 1), the priority will be equal to the minimum value of px, y where 1 ≤ x ≤ n, 1 ≤ y ≤ m and x + y - 1 = i.
Let's iterate through the positions, starting with the highest priority. Let's put in this position the bracket "(" and consider how many ways can complete the remaining brackets to get the correct bracket sequence. If the number of ways of not less than k, then leave in this position "(", or reduce the k on the number of ways and put in this positions bracket ")". And so let's iterate through all items. In order to calculate the number of ways each time dynamics is calculated on two parameters fi, j, where i is the number of processed positions, and j is the number of opened brackets. If the position of i + 1 bracket is not defined yet then you can go to fi + 1, j + 1 or fi + 1, j - 1, if defined then only fi + 1, j + 1 or only fi + 1, j - 1, depending on opening or closing bracket respectively.
The author's solution

Div-1. 123D - String

Sort all suffixes of the string (denoted by an array of strings ci). Then the answer to the problem is the amount of 1 ≤ i ≤ j ≤ |s| and 1 ≤ k, that the prefixes of length k in all ci..j are equal. Options when i = j, and 1 ≤ k ≤ |ci| can calculate at once, it is the number of substrings in the string, ie |s| * (|s| + 1) / 2. Now let's count the LCP (longest common prefix) for adjacent suffixes, ie ai = LCP(ci, ci + 1) for 1 ≤ i < |s|. Then let's count the number of 1 ≤ i ≤ j < |s| and 1 ≤ k, that k ≤ min(ai..j). This task is to count the number of rectangles if there is a limit to the height of each column, ie ai the maximum height of the rectangle in the column i. Solve by a stack or list.
The author's solution

Div-1. 123E - Maze

Consider what is the expected value for a given entrance and exit vertexes. It is clear that there will be only one path from the entrance to the exit, which in any case will be passed. Also, you can still go in the wrong direction. Consider the case when the chosen vertex from which there is k false paths and one right (it is always). Then before going in the right direction it can be 2k equiprobable way around false paths. Every false way occurs the 2k - 1 ways and to increase the number of moves in 2 ×  < amount of vertexes in false subtree >  ie expectation of a false path to increase by 2 ×  < amount of vertexes in false subtree >  × 2k - 1 / 2k =  < amount of vertexes in false subtree > . Then expectation in vertex is equal to sum of  < amount of vertexes in false subtrees >  + 1 (a move in the right direction) + expectation of the vertex if to go the right direction. The result is that the expected value equal to the number of edges reachable from the entrance, without passing through the exit.
Let's run dfs and consider of the vertex as exit vertex. Then, if in some subtree defined entrance, the expected value equal to the size of the subtree. Calculate how much of each subtree is the number of entrance and calculate the number of moves, if the exit is in the current vertex. It is necessary not to forget to count cases where the current vertex is an exit and entrance is higher in the tree traversal.
The author's solution

Full text and comments »

  • Vote: I like it
  • +13
  • Vote: I do not like it

By aropan, 12 years ago, translation, In English

"Tryam" to everyone!

I am an authors of the today's contest. First of all I want to thank Artem Rakhov [RAD] (thanks to him, you'll understand my problems) and Maria Belova [Delinur] (those who know my English level will understand a huge of my thanks). Also thanks to everyone staff for the wonderful of the codeforces system. And also thanks to Sergei Tarasov [Seryi] and Andrey Tkachenko [Tkach1024] for ideas generating and testing.

Good luck and have fun.

Today, a breakdown of score will be slightly different from the standard - for the second division is 500-1000-2000-2000-2500 and 1000-1000-1500-2000-2500 for the first.

And one more, but certainly pleasant news - register ends exactly at the start of the round.

Analysis problem.


How it was.
At 19:35 Moscow time reported that in pretests for 123B - Squares have errors (a special thank to him). Indeed, a special case was not considered (a = 1, b! = 1 and symmetric to it). We have made decision to exclude tests covered by this case. There were a lot of such tests in pretests. Test generator has been fixed, and all tests were changed. After that all submits have been rejudged. As a result some submits with WA verdict could get the AC and vice versa.

What we have now.
We believe that the round should be rating. But if the situation with the problem 123B - Squares is strongly influenced to you, you can send an appeal with the evidence of this in the form of a personal message to RAD no later than 11pm on November 4. We can either do this round unrated for you or remove excess submits.
At the end of the system testing rating will be updated. If you have no appeals, it will be your final rating.

Sorry for the inconvenience.

Full text and comments »

  • Vote: I like it
  • +79
  • Vote: I do not like it

By aropan, 13 years ago, translation, In English


translate.google.com:

I am glad to present you automatically updated (every hour) a list of events with different resources clist.x10.mx. Look, criticize, offer .... and use)

Full text and comments »

  • Vote: I like it
  • 0
  • Vote: I do not like it

By aropan, 13 years ago, In English
  • Vote: I like it
  • +37
  • Vote: I do not like it

By aropan, 13 years ago, translation, In English
  • Vote: I like it
  • +23
  • Vote: I do not like it