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

0:00:00 2019年10月12日 by:

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

成绩:
你想将花店的窗户修饰到最参加舒服。你又F束花,每束花都相异。,而且编号实足组织一排的花瓶。花瓶被粘在架子上,而且被陆续地从1编号到V,这么V执意花瓶的编号。从左到右1是最左派的的花瓶。,V是最右面的花瓶。花朵都是可让步的,它们表现为1到f。。这些数字是意思是的。:他们决议了花和花瓶的使感觉到次。,若i

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

一束洋石竹(3号)。如今所局部花都只好放在花瓶里,并按次保持原状,杜鹃围生殖囊放在本人花瓶里,只好放在秋海棠属的植物的左派的。,秋海棠属的植物只好放在洋石竹左派的的花瓶里。。免得花瓶比花多,有本人空花瓶。。每个花瓶仅有的装花束。。

  每个花瓶都有确切的的特异性(就像一朵花) 。花瓶里的每一朵花都有必然的浅尝重要性。,用必须的表现。下表预约了审美学重要性。空花瓶的审美学值为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号花瓶里太吓人了。。
需求按召唤使感觉到,才干发生最大的浅尝重要性,免得有一些钟摆,无论哪个本人都是容许的。。

承担:

  • 1 ≤ F ≤ 100,代表花朵的等同。
  • F ≤ V ≤ 100
  • ,表现花瓶的等同。

  • -50 £ Aij £ 50 ,代表将花i拔出j花瓶发生的浅尝值。

输入:

  • 第聚会的收录必须的f,V
  • 下聚会的F,每行收录n个必须的,这么Aij这是第19行数字(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]=消瘦{f[i][j-1],f[i-1][j-1] num[i][j],但由于有正数。,因而我缺席计算适用于的等同。,大体而言,屡次适用于,正数成绩还缺席处置。,在网上预告一些人的处置方案:
,老实说,我不听说他的指定遗传密码做成某事dp[i][i-1]=-32767;为什么?,但它事实上处置了正数成绩。,但我还没搞清楚规律。,等等。,你能读懂吗?,它能够收录=mathematics含蓄。,或许能够是唱片穴。,不变卖,呵呵。
更与众确切的的是这样。

,优良的特异使安定,当然啦难听说。,究竟,讲话C。,归咎于体育上学,没小心使高雅,没什么好说的。,谈谈我的意向。

  我处置正数的方式是在输入时将每编号据加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 ;
}
output(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(回复[我]][j -1] < 回复[我] -1][j -1] + num[i][j]){
回复[我]][j]
= 回复[我] -1][j -1] + num[i][j];
from[i][j]
= j;
}
else{
from[i][j]
= from[i][j -1];
回复[我]][j]
= 回复[我]][j -1];
}
}
}
printf(
"%d/n", ans[f][v] -50* f);
输入(F), v);
printf(
"/n");
return0;
}

>>我想说两句

告诉我你的想法... , 如果你想在评论中显示自定义头像, 请点击 gravatar!

注意:广告、垃圾评论、灌水请绕行。