1. 程式人生 > >[jzoj5972]wang(最小權匹配=最小費用最大流、貪心、結論題)

[jzoj5972]wang(最小權匹配=最小費用最大流、貪心、結論題)

5972. 【北大2019冬令營模擬12.1】 wang(2s,256MB)
Problem
  • 給定一個定義域和值域都在 Z Z 上的函式 F ( x

    ) F(x) ,且給定一個常數 C C ,且滿足 F
    ( 2 F ( x ) x
    + 1 ) = F ( x ) + C F(2F(x) - x + 1) = F(x) + C

  • 現在給定你 n n 個二元組 ( x i , y i ) (x_i,y_i) ,要求最小化 i = 1 n F ( x i ) y i \sum_{i=1}^n|F(x_i)-y_i|

Data constraint
  • C 60 C\le 60

  • n 10000 n\le 10000

Solution
  • 性質①

    F ( x + 2 C ) = F ( x ) + 2 C F(x+2C)=F(x)+2C

  • 證明①

  • y = 2 F ( x ) x + 1 y=2F(x)-x+1


  • F ( y ) = F ( x ) + C F(y)=F(x)+C \Downarrow F ( y ) + C = F ( x ) + 2 C F(y)+C=F(x)+2C \Downarrow F ( 2 F ( y ) y + 1 ) = F ( x ) + 2 C F(2F(y)-y+1)=F(x)+2C 2 F ( y ) y + 1 = 2 F ( y ) 2 F ( x ) + x = x + 2 C 2F(y)-y+1=2F(y)-2F(x)+x=x+2C \Downarrow F ( x + 2 C ) = F ( x ) + 2 C F(x+2C)=F(x)+2C

  • 性質②

    • a + b = 2 t + 1 , F ( a ) = t a+b=2t+1,F(a)=t

    • F ( a ) + F ( b ) = 2 t + C F(a)+F(b)=2t+C

證明②

  • a = 2 a , b = 2 b + 1 , t = a + b a=2a',b=2b'+1,t=a'+b'
  • F ( 2 F ( a ) a + 1 ) = F ( a ) + C F(2F(a)-a+1)=F(a)+C \Downarrow F ( 2 ( t + n C ) a + 1 ) = t + n C + C F(2(t+nC)-a+1)=t+nC+C \Downarrow F ( 2 t a + 1 + 2 n C ) = t + n C + C F(2t-a+1+2nC)=t+nC+C \Downarrow F ( 2 t a + 1 ) + 2 n C = t + n C + C F(2t-a+1)+2nC=t+nC+C \Downarrow F ( b ) = t ( n 1 ) C F(b)=t-(n-1)C