JSOI2009 球隊收益

2021-10-23 18:54:55 字數 1249 閱讀 2130

因為要限制每個比賽,一勝一負,流量無法限制。

所以我們可以假設先全敗,然後選擇某個人獲勝,然後用差值來改變。

假設當前a勝,b負。然後獲勝一次的差值為:

c*(a+1)

*(a+1)

+ d*

(b-1)*

(b-1

)- c*a*a - d*b*b

= c*(2

*a+1

)- d*(2

*b-1

)

ac**:

#pragma gcc optimize("-ofast","-funroll-all-loops")

#include

//#define int long long

using namespace std;

const

int inf=

0x3f3f3f3f

;const

int n=

2e4+

10,m=

1e6+10;

int n,m,s,t,res,a[n]

,b[n]

,c[n]

,d[n]

,d[n]

,st[n]

,vis[n]

,num[n]

;int head[n]

,nex[m]

,to[m]

,w[m]

,flow[m]

,tot=1;

inline

void

ade(

int a,

int b,

int c,

int d)

inline

void

add(

int a,

int b,

int c,

int d)

inline

intspfa()

}return d[t]

}int

dfs(

int x,

int f)

}return fl;

}inline

intzkw()

signed

main()

for(

int i=

1;i<=n;i++)}

cout<<

zkw(

)+res;

return0;

}

JSOI2009 球隊收益 Solution

題意 有n nn個球隊,如果一支球隊勝場為x ix i xi 負場為y iy i yi 那麼他們的獎金即為ci xi2 di y i2 c i times x i 2 d i times y i 2 ci xi 2 d i y i2 現在知道了這些球隊現在的勝場和負場,以及一些不確定的比賽,問總獎金...

1449 2895 JSOI2009 球隊收益

題目鏈結 題目大意 n 支球隊,球隊的支出和勝負場次有關,具體來說,第i支球隊的賽季總支出是ci x2 di y 2,其中x,y 分別表示這只球隊本賽季的勝負場次。現在賽季進行到了一半,每只球隊分別取得了ai 場勝利和bi 場失利。而接下來還有 m 場比賽要進行。問聯盟球隊的最小總支出是多少。題解 ...

JSOI2009 bzoj1449 球隊收益

description input output 乙個整數表示聯盟裡所有球隊收益之和的最小值。首先假設全輸,然後給每場比賽分配乙個贏家,每個隊伍每多贏一場多獲得的收益作為費用。但是有乙個問題,如何保證每次走的是對應的邊?也就是,如何保證贏第一場的時候增加的收益是贏一場減贏零場,而不是贏兩場減贏一場?...