1

Тема: timus 1761

Let an integer n be given. Write the integers from 1 to n in binary notation successively from left to right. In the resulting string consisting of zeros and ones, choose a palindrome substring of maximal length. It is required to find the length of this substring.
Input
The only input line contains the integer n in binary notation (1 ? n ? 2^1 000 000).
Output
Output one line containing the required length.
Samples
input                  output
101                   5
10100                   11

Hint
In the first sample, the string 11011100101 will be written (a variant of the longest palindrome is underlined).

Nereal'naya zadacha na vid, esli chto http://acm.timus.ru/problem.aspx?space=1&num=1761

2

Re: timus 1761

Только что сдал. Ничего сложного нету, главное - написать брутфорс, вывести ответы для первых 10000 (можно и меньше, но так проще) чисел и найти закономерность. Если все же будут вопросы - пишите, я расскажу решение.

3 Отредактировано aza_inf (2010-06-23 13:24:51)

Re: timus 1761

nichego ne ponyal
vrode bi
2 2 -> 1
3 3 -> 2
4 5 -> 4
6 15 -> 5
16 33 -> 7
34 47 -> 9
48 69 -> 10
70 87 -> 11
88 174 -> 13
175 175 -> 14
176 374 -> 16
375 375 -> 17
376 830 -> 19
831 831 -> 20
832 1862 -> 22
1863 1863 -> 23
// a b -> c
// in interval a..b max palindrome's length is c
// sequence 0110111001011101111000..................................

4

Re: timus 1761

Если написать правильный брутфорс, то можно получить такую картину:

1 1 1
2 2 1
3 5 1
7 7 4
11 9 4
15 10 4
19 11 4
23 13 4
39 16 16
71 19 32
135 22 64
263 25 128
519 28 256
1031 31 512
2055 34 1024
4103 37 2048
8199 40 4096

Первое число - n, второе число - длина палиндрома, третье число - разность первого числа этой строки и предыдущей строки. Выводятся только те n, на которых длина палиндрома увеличивается.