RQNOJ 花店橱窗布置

简介: 点击打开链接 思路: 动态规划 分析: 1 题目要求找到最大的美学值,并且要求标识号大的必须在标识号小的右边,那么这就可以知道,如果花朵i在第i行的第j列那么第i+1朵必须在j+1后面 2 很明显的阶段就出来了,我们用dp[i][j]表示...

点击打开链接

思路: 动态规划
分析:
1 题目要求找到最大的美学值,并且要求标识号大的必须在标识号小的右边,那么这就可以知道,如果花朵i在第i行的第j列那么第i+1朵必须在j+1后面
2 很明显的阶段就出来了,我们用dp[i][j]表示第i朵花放在第j列能够得到的最大美学值,那么dp[i][j] = max(dp[i-1][j]) + num[i][j];这里注意每一多花可以放的区间,第i多花可以放的区间就是第i行的[i~V-F+n]
3 题目要求输出没多花的位置,那么就是在状态转移的时候记录一下位置即可

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int INF = 1<<30;
const int MAXN = 110;

int n , m;
int num[MAXN][MAXN] , dp[MAXN][MAXN];
int path[MAXN][MAXN] , output[MAXN];

void solve(){
    for(int i = 1 ; i <= m-n+1 ; i++)
        dp[1][i] = num[1][i];
    memset(path , -1 , sizeof(path));
    for(int i = 2 ; i <= n ; i++){
        for(int j = i ; j <= m-n+i ; j++){
            dp[i][j] = num[i][j];
            int Max = -INF;
            int pos;
            for(int k = i-1 ; k < j ; k++){
               if(dp[i-1][k] > Max){
                   Max = max(Max , dp[i-1][k]); 
                   pos = k;
               }
            }
            dp[i][j] += Max;
            path[i][j] = pos;
        }
    }
    int ans = -INF;
    int pos , x , y;
    for(int i = n ; i <= m ; i++){
        if(ans < dp[n][i]){
            ans = max(ans , dp[n][i]);
            y = i; 
        }
    }
    printf("%d\n" , ans);
    pos = n-1;
    x = n; 
    output[pos--] = y;
    while(path[x][y] != -1){
        output[pos--] = path[x][y]; 
        y = path[x--][y];
    }
    printf("%d" , output[0]);
    for(int i = 1 ; i < n ; i++)
        printf(" %d" , output[i]);
    printf("\n");
}

int main(){
    while(scanf("%d%d" , &n , &m) != EOF){
         for(int i = 1 ; i <= n ; i++)
            for(int j = 1 ; j <= m ; j++) 
                scanf("%d" , &num[i][j]); 
         solve();
    }
    return 0;
}



目录
打赏
0
0
0
0
15
分享
相关文章
洛谷 P1854 花店橱窗布置
题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目。花束可以移动,并且每束花用1到F的整数标识。
797 0
惊艳!2025 蛇年新春汉服租赁管理软件哪家强?实测告诉你!
随着汉服热潮升温,2025蛇年新春临近,汉服制作与租赁行业迎来业务高峰。MBTI-J型管理者需高效协作工具,可视化团队协作软件成关键。本文推荐6款精品软件:板栗看板、Miro、Asana、Notion、Slack和Airtable。这些工具分别在流程管理、创意协作、任务分配、知识沉淀、沟通优化及数据统筹等方面各显神通,助力汉服企业提升效率、精准决策,确保新春活动顺利开展,推动品牌发展。
45 5
校园表白墙源码LoveWall
LoveWall V2.0Pro是款社区型表白墙,提供点赞、评论、发弹幕、多校区支持及分享功能。环境需Centos7+/Windows Server 2008+、宝塔面板、Apache或Nginx、PHP7.1+及数据库5.6+。
180 0
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
174 0
C#实现的打飞机游戏(课程设计)
C#实现的打飞机游戏(课程设计)
172 1
【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能
原文:【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能 任务描述:   有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥。他身上钱很少,只够坐公交的。所以,百度地图API快帮帮他吧! 如何实现:   把地图中心定在魏公村,在视野范围内搜索小学。
1400 0
大一学生课设c——服装管理系统
大一学生课设c——服装管理系统
252 0
大一学生课设c——服装管理系统
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等