【問題描述】
乙個餐廳在相繼的n天裡,第i天需要ri塊餐巾(i=l,2,…,n)。餐廳可以從三種途徑獲得餐巾。
(1)購買新的餐巾,每塊需p分;
(2)把用過的餐巾送到快洗部,洗一塊需m天,費用需f分(f(3)把餐巾送到慢洗部,洗一塊需n天(n>m),費用需s分(s在每天結束時,餐廳必須決定多少塊用過的餐巾送到快洗部,多少塊送慢洗部。在每天開始時,餐廳必須決定是否購買新餐巾及多少,使洗好的和新購的餐巾之和滿足當天的需求量ri,並使n天總的費用最小。
【輸入】
輸入檔案共 3 行,第 1 行為總天數;第 2 行為每天所需的餐巾塊數;第 3 行為每塊餐巾的新購費用 p ,快洗所需天數 m ,快洗所需費用 f ,慢洗所需天數 n ,慢洗所需費用 s 。
【輸出】
一行,最小的費用
【樣例】
napkin.in
3 3 2 4
10 1 6 2 3
napkin.out
【資料規模】
n<=200,ri<=50
雖然寫完了,但是不太會解釋。
題解出門左轉hzwer神犇的部落格
1 #include2 #include3 #include4 #include5 #include6 #include7
#define ll long long
8using
namespace
std;
9const
int inf=1e9;
10const
int mxn=210*2
;11 inline int
read()
15while(ch<='
9'&&ch>='0')
16return sum*flag;17}
18struct
edgee[mxn*mxn*2
];21
int hd[mxn],mct=1;22
void add_edge(int u,int v,int c,int
w)25
void insert(int u,int v,int c,int
w)28
intn,p,n,m,s,t;
29int
a,f,s;
30int
dis[mxn];
31int
pre[mxn];
32bool
inq[mxn];
33bool
spfa()49}
50}51}
52if(dis[t]!=0x3f3f3f3f)return1;
53return0;
54}55int
solve()
62for(int i=pre[t];i>1;i=pre[e[i].u])67}
68return
res;69}
70int
main()
81 p=read();m=read();f=read();n=read();s=read();
82for(i=1;i<=n;i++)
88int ans=solve();
89 printf("
%d\n
",ans);
90return0;
91 }
Cogs 729 網路流24題 圓桌聚餐
網路流24題 圓桌聚餐 輸入檔案 roundtable.in 輸出檔案 roundtable.out 評測外掛程式 時間限制 1 s 記憶體限制 128 mb 問題描述 假設有來自m 個不同單位的代表參加一次國際會議。每個單位的代表數分別為 ri i 1,2,3 m 會議餐廳共有n張餐桌,每張餐桌可...
COGS746 網路流24題 騎士共存
騎士共存問題 問題描述 在乙個n n個方格的西洋棋棋盤上,馬 騎士 可以攻擊的棋盤方格如圖所示。棋盤 上某些方格設定了障礙,騎士不得進入。程式設計任務 對於給定的n n個方格的西洋棋棋盤和障礙標誌,計算棋盤上最多可以放置多少個騎 士,使得它們彼此互不攻擊。資料輸入 由檔案knight.in給出輸入資...
COGS439 網路流24題 軟體補丁
對於乙個軟體公司來說,在發行乙個新軟體之後,可以說已經完成了工作。但是實際上,許多軟體公司在發行乙個新產品之後,還經常傳送補丁程式,修改原產品中的錯誤 當然,有些補丁是要收費的 如某微硬公司就是這樣的乙個軟體公司。今年夏天,在發行了乙個新的字處理軟體之後,到現在他們已經編寫了許多補丁程式。僅僅在這個...