Представьте себе портал
решение проблемы
Когда мы увидели тег на эту тему мы знаем, что это целый ряд вопросов воды дп
Очевидно, что этот интервал относится к интервалу времени
Мы Dp [я] [J] представляю минимальные инопланетяне стоимости уничтожить все время между I ~ J
Очевидно, что такое большой открытый не менее чем двумерный массив турнира
Поэтому вскоре после дискретного взгляда? ?
Переходного состояния уравнение дп [I] [J] = мин (Dp [I] [J], дп [I] [K-1] + дп [K + 1] [J] + чуждые [ID] .d)
КОД
# include <cstdio> #include <CString> #include <алгоритм> с помощью пространства имен STD; структура otherpeople { Int а, б, г; } чужеродные [ 305 ]; INT дп [ 2000 ] [ 2000 ], Ls [ 10010 ], п, т, CNT; Шаблон <Ьурепат е> инлайн недействительного чтение (е & х) { х = 0 ; регистр INT F = 1 ; символ ч = GetChar (); в то время как (ч> ' 9 '|| ч < ' 0 ' ) { если (ч == ' - ' ) F = - 1 ; ч = GetChar ();} , а (ч> = ' 0 ' && ч <= ' 9 ' ) {х = (х << 1 ) + (х << 3 ) + (ч ^ 48 ); ч = GetChar ();} х * = F; } INT Основной () { регистре Int LEN, ID, I, J, K, Q; чтения (т); в то время как (T-- ) { чтение (п); CNT = 0; MemSet (дп, 0 , SizeOf (др)); MemSet (Ls, 0 , SizeOf (LS)); для (я = 1 ; г <= п; ++ я) следующим образом (чужеродный [я] .a), следующим образом (чужеродный [я] .b), следующим образом (чужеродного [я] .d), Ls [чужеродный [я ] .a] = 1 , Ls [чужеродные [я] .b] = 1 ; для (я = 1 ; я <= 10000 ; ++ я) , если (LS [I]) Ls [I] = ++ CNT; для (я = 1 ; г <= п; ++ я) чужеродные [я] .а = Ls [чужеродные [я] .a], чужеродные [я] .B = Ls [чужеродные [я] .b]; для (Len = 1 ; Len <CNT; ++ LEN) для (I = 1 , J = я + Len, J <= CNT; ++, J ++ я) { ид = - 1 ; для (Q = 1 , Q <= п; ++ , д) , если (я <= чужеродные [Q] .a && J> = чужеродные [Q] .b && (ID == - 1 || чужеродные [ID] .d <чужеродные [Q] .d)) ID = д; если (идентификатор == - 1 ) продолжать ; дп [I] [J] = 0x7fffff ; для (к = чужеродные [ID] .a, K <= чужеродные [ID] .b; ++ , к) дп [I] [J] = мин (дп [I] [J], дп [I] [к- 1 ] + дп [K + 1 ] [J] + чуждые [ID] .d); } Е (" % D \ п " , дп [ 1 ] [CNT]); } Возвращает 0 ; }