description
某地區有m座煤礦,其中第i號礦每年產量為ai噸,現有火力發電廠乙個,每年需用煤b噸,每年執行的固定費用(包括折舊費,不包括煤的運費)為h元,每噸原煤從第i號礦運到原有發電廠的運費為ci0(i=1,2,…,m)。input現規劃新建乙個發電廠,m座煤礦每年開採的原煤將全部供給這兩座發電廠。現有n個備選的廠址。若在第j號備選廠址建新廠,每年執行的固定費用為hj元。每噸原煤從第i號礦運到j號備選廠址的運費為cij(i=1,2,…,m;j=1,2,…,n)。
試問:應把新廠廠址選取在何處?m座煤礦開採的原煤應如何分配給兩個發電廠,才能使每年的總費用(發電廠執行費用與原煤運費之和)為最小。
第1行: m b h noutput第2行: a1 a2 … am (0<=ai<=500, a1+a2+…+an>=b)
第3行: h1 h2 … hn (0<=hi<=100)
第4行: c10 c20 … cm0 (0<=cij<=50)
第5行: c11 c21 … cm1
第n+4行:c1n c2n … cmn
第1行:新廠址編號,如果有多個編號滿足要求,輸出最小的。sample input第2行:總費用
4 2 7 9sample output3 1 10 3
6 3 7 1 10 2 7 4 9
1 2 4 3
6 6 8 2
4 10 8 4
10 2 9 2
7 6 6 2
9 3 7 1
2 1 6 9
3 1 10 9
4 2 1 8
2 1 3 4
8hint
對於所有資料, n<=50, m<=50000, b<=10000題解
這題題意超級坑我本來以為,是兩個發電廠都是b噸礦的。。然後開心地敲了個費用流然後樣例都過不去
結果第乙個發電廠只要b噸 其他全部運去第二個發電廠???
開心的tle
那這樣還打啥子費用流。。直接貪心啊,反正你要麼運去第乙個要麼運去第二個
列舉發電廠位置,然後存一下每個礦到第二個廠與到第乙個廠的差,按差從大到小排個序。差越大當然越要全部運去第乙個廠啦。
運不來第乙個就只能去第二個咯,貪個心就行了
告誡自已一定要細看題意
#include
#include
#include
#include
#include
using namespace std;
struct node
a[51000];
bool cmp(node n1,node n2)
intm,b,h,n;
int u[51000],v[51000];
int mp[51][51000];
int mcost,mout;
int main()
else
}sum+=h;sum+=v[i];
if(sumprintf("%d\n%d\n",mout,mcost);
return
0;}
bzoj 2426 HAOI2010 工廠選址
某地區有m座煤礦,其中第i號礦每年產量為ai噸,現有火力發電廠乙個,每年需用煤b噸,每年執行的固定費用 包括折舊費,不包括煤的運費 為h元,每噸原煤從第i號礦運到原有發電廠的運費為ci0 i 1,2,m 現規劃新建乙個發電廠,m座煤礦每年開採的原煤將全部供給這兩座發電廠。現有n個備選的廠址。若在第j...
貪心 bzoj 3008 象棋
本題的難點是 移動過程中不能出現多顆棋子同時在某一格的情況 事實上,可以忽略此條件,因為棋子是相同的,我們可以用合法的等效方案替代一棋子越過另一棋子的情況 a b c三格,a能在一步走到b,b也能在一步走到c。在a的棋子需要走到存在棋子的b,接著走到c。此情形我們可以看成在b的棋子先走到c,接著在a...
bzoj4029 貪心 定價
description 在市場上有很多商品的定價類似於 999 元 4999 元 8999 元這樣。它們和 1000 元 5000 元和 9000 元並沒有什麼本質區別,但是在心理學上會讓人感覺便宜很多,因此也是商家常用的 策略。不過在你看來,這種 十分荒謬。於是你如此計算乙個 p p 為正整數 的...