time limit: 20 sec memory limit: 512 mb
submit: 848 solved: 436
[submit][status][discuss]
3 3
2 3 4
1 1 2 2
1 2 3 5
1 3 3 2
14題解:這一題類似於bzoj1061,(幾乎相同,只是把一段連續區間改為幾段連續區間而已),做法一樣,單純形模板直接套就行;
具體看**:
1 #include2view codeusing
namespace
std;
3#define cls(x, val) memset(x,val,sizeof(x))
4#define ri register int
5#define eps 1e-6
6 typedef long
long
ll;7 typedef unsigned long
long
ull;
8const
int inf=0x3f3f3f3f
;9 inline int
read()
1013
while(ch>='
0'&&ch<='9')
14return x*f;15}
16const
int n=1005;17
const
int m=10005;18
intn,m;
19double
a[m][n],b[m],c[m],v;
20 inline void pivot(int l,int e)//
矩陣的轉秩
2127 a[l][e]=1/a[l][e];
28for(int i=1;i<=m;++i)
2937 a[i][e]=-a[i][e]*a[l][e];38}
39}40 v+=c[e]*b[l];
41for(int j=1;j<=n;++j)
4245 c[e]=-c[e]*a[l][e];46}
4748 inline double
******x()
4957
if(e==n+1) return
v;58
double mn=inf;
59for(int i=1;i<=m;++i)
6063
if(mn==inf) return
inf;
64pivot(l,e);65}
66}6768
intmain()
6981 b[i]=read();82}
83 printf("
%d\n
",(int)(******x()+0.5
));84
return0;
85 }
posted @
2018-11-24 20:22
songhl 閱讀(
...)
編輯收藏
bzoj 1061 志願者招募
明顯的線性規劃網路流,據說當時考場上就1個人a了?a i j 表示第i種志願者第j天是否工作 p i 表示第i種志願者的人數 sigma a i x p i need x 補充函式y i 則sigma a i x p i need x y x 差分,start i 表示第i種志願者開始工作的時間,e...
BZOJ 1061, 志願者招募
傳送門 最小化招聘給定不同型別志願者,以滿足每日不同人數要求的費用總和。由線性規劃轉化為最小費用最大流來處理。一般按如下步驟進行操作 新增鬆弛變數,將不等號都變為等號。分別用下乙個式子減去上乙個式子,如果每個變數只出現了兩次且符號一正一負,那麼可以轉化為費用流。對於每個式子建立乙個點,那麼每個變數對...
bzoj1061 志願者招募
題意 給m類志願者,第i個志願者從第 l i 天工作到第 r i 天,費用為c i 每種志願者可以選擇無限多人。每一天都有給定的最少志願者數目要求a i 求費用最小的選擇方案,輸出費用。思路 明顯是一道線性規劃可以解決的問題,但我不會寫單純型。聽溪哥說線性規劃都有網路流的等價形式,不過我在網上沒有找...