伟德体育 -

伟德体育

当前位置: 主页 > 站长资讯 > SGU 104 Little Shop of Flowers 翻译 题解_C语言

SGU 104 Little Shop of Flowers 翻译 题解_C语言

时间:2019-03-21来源:网络整理 作者:admin点击:

104. Little shop of flowers
每个试验的点的工夫
内存限度局限: 4096KB

成绩:
你想把花店的橱窗修饰得最美丽。。你又有花了。,每花束都是差数的。,同时连一体花瓶也缺陷少于一体。。花瓶被粘在架子上。,并延续编号从1到五。,V是花瓶的本利之和。。从左到右,1是最向左的花瓶。,V是右手的花瓶。。花是连贯的。,它们都被表达为1到f。。这些数字是打算的。:他们确定花和花摆在一排花瓶里的挨次。,若i

一束秋海棠属的植物(2号)

一束麝香石竹(编号是3)。如今所其中的一部分花都必需放在花瓶里,并控制编号。,杜鹃花放在秋海棠属的植物的花瓶里。,Begonia必需放在麝香石竹的向左花瓶上。。条件花瓶的本利之和超越花朵,而且有一体空花瓶。。每个花瓶可是装花束。。

  每个花瓶都有差数的特点(就像花两者都)。 。放在花瓶里的每一束花都有必然的喝涵义。,用完整的表现的。。美术理论涵义见下表。。一体空花瓶的喝涵义是0。。

    

花瓶

  

1

2

3

4

5

花朵

1 (杜鹃花)

7

23

-5

-24

16

2 (秋海棠属的植物)

5

21

-4

10

23

3 麝香石竹

-21

5

-4

-20

20

  土地体现 的履历,在花瓶2中放杜鹃出庭马上。,把它放在4个花瓶上太惊人的了。。
它需求土地要价职位以发生最大的AEST。,条件有几种摆法,他们中任何的一体都可以被容许。。

假定:

  • 1 ≤ F ≤ 100,代表花数。
  • F ≤ V ≤ 100
  • ,花瓶数。
  • -50 £ Aij £ 50 ,代表将花i拔出j花瓶发生的喝值。

输入:

  • 第当事人计入完整的F。,V
  • 接下来,F行。,每行计入n个完整的。,这么Aij它是线的数量j(i+2)。。

输入:

  • 第当事人是可以发生的最大的喝涵义。。
  • 另外的排输入花道就职,计入F数。,第k个数字代表第k朵花放在哪个花瓶中。

样例:

输入

3 5 7 23 -5 -24 165 21 -4 10 23-21 5 -4 -20 20 

输入

53 2 4 5

================================高尚的的分割线 ================================

  哎呀!,翻译家这个话题真叫人厌恶。,据估计,有数量庞大的数量庞大的不舒服的刻。,网络公民包罗容纳。,黎明再写。,只翻译家明天。。 2011年6月8日 21时26分51秒 

  好吧,优秀的典范静态工程:F[i] [j]=max {f[i] [j-1 ],F[I-1 ] [J-1 ] NUM[i],但由于有正数。,这么我曾经做了多少次了?,简单地说,屡次做。,正数成绩还缺乏处置。,我在网上看到了几个成绩。:
,真言实语没读书他加密里dp[i][i-1]=-32767;是干吗,但它全然处置了正数成绩。,但我缺乏想过。,走着瞧吧。,看一眼你能不能读懂。,能够计入算学特效药。,它能够是一体履历洞。,不了解,呵呵。
这执意条。

,良好而特刊的构成方式。,这非常难忧虑。,总的来说,谈话一体C派系。,缺陷P学院。,缺乏仔细的思索。,更不用说别的了。,告诉我我的思绪。。

  我处置正数的方式是在i时每个履历加50。,指导处置正数,而且你可以从输入末后中减去50 *F。,你感触方法?感触罚款。请拍拍手。,道谢的话。

#include <stdio.h>
#include
<stdlib.h>
#define INF 0xFFFFF
int ans[101][101];
int num[101][101];
int from[101][101];
#define 山峰(A), b) ((a)>(b)?(a):(b)void output(int k, int l)
{
if(k ==1){
printf(
"%d", from[k][l]);
return ;
}
输入(K)
-1, from[k][l] -1);
printf(
" %d", from[k][l]);
return;
}
int main(int argc, char**argv)
{
int f, v;
int i, j;
scanf(
"%d%d", &f, &v);
for(i =1; i <= f; i++){
for(j =1; j <= v; j++){
scanf(
"%d", &num[i][j]);
num[i][j]
+=50;
}
}
for(i =1; i <= f; i++){
for(j =1; j <= v - f + i; j++){
if(ANS[我][j -1] < ANS[我 -1][j -1] + num[i][j]){
ANS[我][j]
= ANS[我 -1][j -1] + num[i][j];
from[i][j]
= j;
}
else{
from[i][j]
= from[i][j -1];
ANS[我][j]
= ANS[我][j -1];
}
}
}
printf(
"%d/n", ans[f][v] -50* f);
输入(F), v);
printf(
"/n");
return0;
}

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关内容
推荐内容