題目描述 description
假設以最美觀的方式布置花店的櫥窗,有f束花,v個花瓶,我們用美學值(乙個整數)表示每束花放入每個花瓶所產生的美學效果。為了取得最佳的美學效果,必須使花的擺放取得最大的美學值。
輸入描述 input description
第一行為兩個整數f,v(f<=v<=100)
接下來f行每行v個整數,第i行第j個數表示第i束花放入第j個花瓶的美學值。
輸出描述 output description
乙個整數,即最大美學值。
樣例輸入 sample input
2 210 0
5 2樣例輸出 sample output
資料範圍及提示 data size & hint
思路:費用流~~~;
來,上**:
#include #include#include
#include
#define lit 10001
#define maxn 505
#define inf 0x7fffffff
using
namespace
std;
struct
edgetype ;
struct edgetype edge[maxn*maxn];
int if_z,n,m,head[maxn],s,t=maxn-1,cnt=1
;int
pre[maxn],ans,dis[maxn];
bool
if_[maxn];
char
cget;
inline
void
in(int &now)
while(cget>='
0'&&cget<='9'
)
now*=if_z;
}inline
void edge_add(int u,int v,int w,int
f)bool
spfa()}}
if_[now]=false
; }
return dis[t]}int
main()
}for(int i=1;i<=m;i++) edge_add(i+n,t,0,1
);
while
(spfa())
ans+=lit-dis[t];
}cout
}
花店櫥窗布置
題目描述 某花店現有f束花,每一束花的品種都不一樣,同時至少有同樣數量的花瓶,被按順序擺成一行,花瓶的位置是固定的,從左到右按1到v順序編號,v是花瓶的數目。花束可以移動,並且每束花用1到f的整數標識。如果i j,則花束i必須放在花束j左邊的花瓶中。例如,假設杜鵑花的標識數為1,秋海棠的標識數為2,...
花店櫥窗布置
不就是插花嗎?求出動態轉移方程,很容易啊。直接列出動態轉移方程。b i j max b i j b i 1 k 1 a i k i 1.f j i.v f i k i.j include include define r i,a,b for int i a i b i using namespace...
花店櫥窗布置
題面 給定乙個 n v 的矩陣 要求從第一行走到第f行,每行取走乙個數,且該行所取的數必須必上一行所取的數的列數大 求所能取走的最大值 注意每一行所取走的數字的列數必須大於等該行的行號 因為必須給前面的花留下足夠的花瓶 由此我們便可以很容易的得出狀態轉移方程 dp i j max dp i 1 k ...