首页 > 分享 > 花店橱窗布置

花店橱窗布置

花店橱窗布置

最新推荐文章于 2021-06-19 18:48:10 发布

QiaoRuoZhuo 于 2018-06-10 11:23:46 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

#include<iostream>

#include<cstring>

using namespace std;

const int INF = -5000;

const int MAXC = 100;

const int MAXM = 100;

int V[MAXC+1][MAXM+1];

int B1[MAXC+1][MAXM+1];

int B2[MAXC+1][MAXM+1];

int B3[MAXC+1][MAXM+1];

int pre[MAXM+1];

int cur[MAXM+1];

int F1[MAXM+1];

int X[MAXC+1];

int BX[MAXC+1];

int bestValue = INF;

int C[MAXC+1][MAXM+1];

int Best_1(int n, int m);

int Best_2(int n, int m);

int Best_3(int n, int m);

void Show(int i, int j);

int Show_2(int n, int m);

void DFS(int n, int i, int j);

int MDFS(int i, int j);

void Show_3(int n, int m);

int main()

{

int n, m;

cin >> n >> m;

for (int i=1; i<=n; i++)

{

for (int j=1; j<=m; j++)

{

cin >> V[i][j];

}

}

cout << Best_1(n, m) << endl;

Show(n, m);

cout << Show_2(n, m) << endl;

cout << Best_2(n, m) << endl;

cout << Best_3(n, m) << endl;

DFS(n, n, m);

cout << bestValue << endl;

for (int i=1; i<=n; i++)

{

cout << BX[i] << " ";

}

cout << endl;

for (int i=1; i<=MAXC; i++)

{

for (int j=1; j<=MAXM; j++)

{

B2[i][j] = INF;

}

}

cout << MDFS(n, m) << endl;

Show_3(n, m);

return 0;

}

int Best_1(int n, int m)

{

for (int i=1; i<=n; i++)

{

for (int j=i; j<=m-n+i; j++)

{

int bestP = INF;

for (int k=i; k<=j; k++)

{

if (bestP < B1[i-1][k-1] + V[i][k])

bestP = B1[i-1][k-1] + V[i][k];

}

B1[i][j] = bestP;

}

}

return B1[n][m];

}

void Show(int i, int j)

{

if (i == 0 || j == 0)

return;

for (int k=j; k>=i; k--)

{

if (B1[i][j] == B1[i-1][k-1] + V[i][k])

{

Show(i-1, k-1);

cout << k << " ";

break;

}

}

}

int Show_2(int n, int m)

{

for (int i=n,j=m; i>0; i--)

{

for (int k=i; k<=j; k++)

{

if (B1[i][j] == B1[i-1][k-1] + V[i][k])

{

X[i] = k;

j = k - 1;

break;

}

}

}

int s = 0;

for (int i=1; i<=n; i++)

{

cout << X[i] << " ";

s += V[i][X[i]];

}

cout << endl;

return s;

}

int Best_2(int n, int m)

{

for (int i=1; i<=n; i++)

{

for (int j=i; j<=m-n+i; j++)

{

int bestP = INF;

for (int k=i; k<=j; k++)

{

if (bestP < pre[k-1] + V[i][k])

bestP = pre[k-1] + V[i][k];

}

cur[j] = bestP;

}

for (int j=i; j<=m-n+i; j++)

{

pre[j] = cur[j];

}

}

return pre[m];

}

int Best_3(int n, int m)

{

for (int i=1; i<=n; i++)

{

for (int j=m-n+i; j>=i; j--)

{

int bestP = INF;

for (int k=i; k<=j; k++)

{

if (bestP < F1[k-1] + V[i][k])

bestP = F1[k-1] + V[i][k];

}

F1[j] = bestP;

}

}

return F1[m];

}

void DFS(int n, int i, int j)

{

if (i==0 || j==0)

{

int s = 0;

for (int k=1; k<=n; k++)

{

s += V[k][X[k]];

}

if (bestValue < s)

{

bestValue = s;

for (int k=1; k<=n; k++)

{

BX[k] = X[k];

}

}

return;

}

for (int k=i; k<=j; k++)

{

X[i] == k;

DFS(n, i-1, k-1);

}

}

int MDFS(int i, int j)

{

if (B2[i][j] != INF)

return B2[i][j];

if (i==0 || j==0)

return 0;

int bestP = INF;

for (int k=i; k<=j; k++)

{

if (bestP < MDFS(i-1, k-1) + V[i][k])

bestP = MDFS(i-1, k-1) + V[i][k];

}

return B2[i][j] = bestP;

}

void Show_3(int n, int m)

{

int bestP, pos;

for (int i=1; i<=n; i++)

{

for (int j=i; j<=m-n+i; j++)

{

bestP = INF;

for (int k=i-1; k<j; k++)

{

if (bestP < B3[i-1][k] + V[i][j])

{

bestP = B3[i-1][k] + V[i][j];

C[i][j] = k;

}

}

B3[i][j] = bestP;

}

}

bestP = INF;

for (int j=n; j<=m; j++)

{

if (bestP < B3[n][j])

{

bestP = B3[n][j];

pos = j;

}

}

cout << bestP << endl;

for (int i=n; i>0; i--)

{

X[i] = pos;

pos = C[i][pos];

}

for (int i=1; i<=n; i++)

{

cout << X[i] << " ";

}

cout << endl;

}


相关知识

花店橱窗怎么设计?吸引人的花店橱窗要怎么布置?
【DP】花店橱窗布置
P1854 花店橱窗布置
[Tyvj 1124]花店橱窗布置
花店橱窗陈列的花卉最好是本花店的()。
花店橱窗设计,好看的花要有好看的设计!
花店中橱窗设计一角
花店橱窗题目题解
花店圣诞主题橱窗元素!圣诞卖花就靠它啦
春季花店这样布置,生意爆好!

网址: 花店橱窗布置 https://m.huajiangbk.com/newsview563167.html

所属分类:花卉
上一篇: 【题解】花店橱窗
下一篇: 五线城市小资花店用场景布置制造节