【Luogu5665】分割

DP暴力は、[I] [J] Fフロント番号iで)最後の間隔(J、i]が最小回答、伝達方程式は$はO(n ^ 3のプレフィックスと複雑さを最適化するために使用することができています$は
(その後、種々の$ 0に最適化された(N ^ 2)$されてもよい 、 しかし必要はない)
[I] [j]は、見つけることができ、出力Fの場合、F [i]が[J-1 ] およびF [I] [J ]合法的な、そして$ [F i]の[j]が \ルF [i]と[J-1] $
証明:リターンの数、考慮Fので、[I] [J]とF [i]は[J-1 ] 正当なもの、セットF [i]は[J-1 ] F [J-1] [K ] Fからの転送、F [i]の[j]の[i]の[K ']転送、\ル$ Kが存在しなければならK' $ 、すなわち左には、正当なことを保証するために、いくつかの数値(0でもよい)を除去することができる
ような戦略には、分割されたF [I] [J-1 ]、 及び提供分割区間が$ S1 \ルS2 \ル...ています... \ルセント$は、それぞれ左削除のLi、Riを添加権利は、明確に$ L1 =保持時間= 0 $と$ R_ {I-1} =リー$、 次いで間隔とから$ \ sum_は、{iが= 1} ^ {T}のSi ^ {2 } $ $ \ sum_ {i = 1}に ^ {T}シリコン(Si + RI-のLi)^ 2 = \ sum_ {i = 1} ^ {T}のSi ^ 2 + \ sum_ {i = 1} ^ { T}(RI-R_ {I-1})^ {2} +2 \ sum_ {i = 1} ^ {T}のSi(RI-R_ {I-1})\ル\ sum_ ^ {I 1 =} {T}のSi ^ 2 + 2 \ sum_ {I = 1} ^ {T} Riをシリコン(Si-S_ {I-1})\ル\ sum_ {I = 1} ^ {Tを}のSi ^ 2 $
証拠を介しては、最適なソリューションを構築する方法を同時に得ることができ、乾燥したプライオリティキュー 楽しみにn個から選択し、最後の正当性を維持
(怠惰__int128を使用する)テストの精度で記述する必要があります

1の#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  の#define MOD(1 << 30)
 4  の#define N 40000007
 5  の#defineが長い長いっ
 6  の#define LLL __int128
 7  int型、N型、M、X、Y、Z、Q [N]、F [N] B [N]。
8  LL ANS、[N]。
9 LL CALC(int型K){
 10      リターン 2 * [K] - [F [K]。
11  }
 12  ボイドライト(LLL K){
 13      であれば(K> 9)、書き込み(K / 10 )。
14      のputchar(k個の%10 + ' 0 ' )。
15  }
 16  INT メイン(){
 17      のscanf(" %D%D "、&​​N、&型)。
18      場合(!型)
 19          のためのINTは iは= 1 ; I <= N; I ++ ){
 20              のscanf(" %dの"、およびX)
21              [I] = [I- 1 ] + X。
22          }
 23      {
 24         scanf関数(" %D%D%D%D%D%D "、およびX&Y、及びZ&B [ 1 ]、&B [ 2 ]、&M)。
25          のためにINT iは= 3 ; iが<= N; I ++)B [I] =(1LL * X * B [I- 1 ] + 1LL * Y * B [I- 2 ] + Z)%のMOD。
26          INT XX = 1 27          のためにINT iは= 1 ; iが<= M; I ++ ){
 28              のscanf(" %D%D%D "、およびX&Y、およびZ)。
29              のためにINT J <= X; J = XX] + B [j]は%(Z-Y + 1)+ Y。
30              XX = X + 1 31          }
 32      }
 33      、X = 1 34      、Y = 0 35      のためにINT iは= 1 ; iが<= N; I ++ ){
 36          ながら((X <= Y)&&(計算値(Q [X])<= [I]))は、x ++ ;
37          F [I] = Q [X- 1 ]。
38          一方、((X <= Y)&&(計算値(Q [Y])> = CALC(I)))y-- 39          Q [++ Y] = I。
40      }
 41     LLL ANS = 0、O = 1 42      のためにINT I = N; iは、iがF [I] =)* O ANS + =([I] -a [F [I]])*([I] - [F [I])を;
43      ライト(ANS)。
44 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11901307.html