有乙個廠,需要b
bb噸煤炭,然後第j
jj個礦運到該廠的運費為c0,
jc_
c0,j
,執行總費用為運費之和加上h
0h_0
h0現在在1∼n
1\sim n
1∼n挑選乙個建乙個新廠,其餘的煤礦都運到這個廠,第j
jj個礦運到該廠的運費為ci,
jc_
ci,j
,執行費用為運費之和加上h
ih_i
hi求最小費用。
很簡單的一道貪心題,顯然我們將最優的b
bb噸運到舊廠。
我們列舉建立在哪個廠,然後對於每個礦將c0,
j−ci
,j
c_-c_
c0,j−
ci,j
進行從小到大排序,然後將最小的b
bb噸運入舊廠就行了。
#include
#include
#include
using
namespace std;
const
int n=
55,m=
55000
;struct noded[m]
;int m,b,h,n,a[m]
,h[n]
,c[n]
[m],ans,mins=
2147483647
,p;bool
cmp(node x,node y)
intmain()
, ans+
=c[i]
[j]*a[j]
;sort
(d+1
,d+1
+m,cmp)
;int k=b;
for(
int j=
1;j<=m&&k;j++)if
(k>=d[j]
.num)
k-=d[j]
.num,ans+
=d[j]
.w*d[j]
.num;
else
if(k.num)
ans+
=k*d[j]
.w,k=0;
if(ansmins=ans,p=i;
}printf
("%d\n%d"
,p,mins)
;}
HAOI2010 工廠選址題解
某地區有m座煤礦,其中第i號礦每年產量為ai噸,現有火力發電廠乙個,每年需用煤b噸,每年執行的固定費用 包括折舊費,不包括煤的運費 為h元,每噸原煤從第i號礦運到原有發電廠的運費為ci0 i 1,2,m 現規劃新建乙個發電廠,m座煤礦每年開採的原煤將全部供給這兩座發電廠。現有n個備選的廠址。若在第j...
bzoj 2426 HAOI2010 工廠選址
某地區有m座煤礦,其中第i號礦每年產量為ai噸,現有火力發電廠乙個,每年需用煤b噸,每年執行的固定費用 包括折舊費,不包括煤的運費 為h元,每噸原煤從第i號礦運到原有發電廠的運費為ci0 i 1,2,m 現規劃新建乙個發電廠,m座煤礦每年開採的原煤將全部供給這兩座發電廠。現有n個備選的廠址。若在第j...
P2515 HAOI2010 軟體安裝
傻了。思路 scc 縮點,樹上揹包。提交 2次 無語。建邊建錯了 思路 關係可能會形成環,而整個環是乙個整體 要選就選環上所有點,否則整個不選 所以我們先把所有的環縮點,然後便形成了一棵樹 乙個點不可能有兩個父親 然後跑樹上揹包。include include using namespace std...