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;
}



目录
相关文章
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
686 23
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
14天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1122 110
|
人工智能 数据可视化 数据挖掘
Quick BI 体验&征文有奖!
瓴羊生态推出Quick BI 征文激励计划,鼓励用户分享数据分析实践经验与技术洞察,征集高质量原创文章。内容围绕AI功能体验与BI案例实践,设季奖、年奖及参与奖,优秀作者可获现金奖励、产品内测资格及官方认证形象。投稿截止至2026年3月31日。
Quick BI 体验&征文有奖!