Ссылка на тему https://nanti.jisuanke.com/t/41175
С Baidu Star отборочных сделать это на стол, чтобы найти себя играть регулярный титул, это расширение заставляет меня чувствовать себя почти безумным, и сегодня этот вопрос я Сайдинг отмерших два или три часа, просто не видел ни одного закона, Я был слишком нежными точками - и это мой первый раз делает повторение проблем, вопросы еще быть для высоких ах!
Если относительные идеи (старший брат посмотрел замечательный парсер https://blog.csdn.net/chenzhenyu123456/article/details/48579695 ), этот вопрос может быть решен
Сначала нужно открыть переменную структуру для хранения различных элементов 1.'c «номер 3. длиной 2. Строки, соответствующего всех строки» целей и 4. Значения элемента местоположения C, слегка Думать, что вы можете получить следующее соотношение:
номер 1.'c»: a2.num = a0.num + a1.num
2. Длина строки: a2.len = a0.len + a1.len
3. Положение всех «с», соответствующей целевой строки и: a2.sum = a0.num + a1.num + a0.len * a1.num
4. Значение элемента: a2.val = a0.val + a1.val + (a1.sum + a0.len * a1.num) * a0.num-a1.num * a0.sum
Ps: остальная часть требует особого внимания, это легко сделать ошибки.
Обратитесь к коду:
1 #include <. Бит / STDC ++ H> 2 3 с помощью пространства имен зЬй; 4 Const длинные длинные аха = 530600414 ; 5 структуры га { - долго долго длина, сумма, вал, Num; 7 га () {} 8 га ( длинный длинная х, длинный длинный у, длинный длинный г, длинный длинные р): LEN (х), сумма (у), Val (г), Num (р) {} 9 }; 10 INT т, п; 11 INT основных () { 12 зсапЕ ( " % d " , & т); 13 для ( INT случая = 1 ; случай <= т; случай ++ ) { 14 зсапЕ ( " % d " , & п); 15 га а0 ( 1 , 1 , 0 , 1 ), а1 ( 2 , 0 , 0 , 0 ), а2; 16 п = 2 ; 17 в то время как (N- , ) { 18 a2 = га ((a0.len + a1.len)% аха, 19 ((+ a0.sum a1.sum) Ах% + * a0.len a1.num Aha%)% Aha, 20 (((+ a0.val a1.val) Ах% + (+ a1.sum a0.len * a1.num)% * Aha Aha a0.num%)% * Aha-a1.num a0.sum% + Aha Aha)% Aha, 21 (a0.num a1.num +) , % AHA); 22 а0 = a1; 23 a1 = a2; 24 // Е ( "% = их ДНУ, сумма =% ДНУ, Val =% ДНУ, ДНУ Num =% \ п", a2.len, a2.sum, a2.val, a2.num); 25 } 26 Е ( " Случай #% d:% ДНУ \ п " , Случай, a2.val); 27 } 28 возврата 0 ; 29 }