P2096 最佳旅游线路
https://www.luogu.com.cn/problem/P2096
涉及知识点:贪心
黄色题
涉及知识点:贪心
黄色题
思路:
代码:
给定一个 n×m 的矩阵,每列选出一个最大值 a[i] ,然后求 a数列的最大字段和。
思路: 在林荫道上走并不会影响观赏值,所以只要把每列的最大值求出来就行了。
代码:
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; scanf("%d %lld",&n,&m); int t[n+1][m+1];//记录输入的观赏价值。 int dp[m+1];//记录每列的最大值。 for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) { scanf("%d",&t[i][j]);//千万不要边输入边取每列的最大值,很容易将行和列弄混 } } dp[0]=0; int maxn; for(int j=1;j<=m;j++){ maxn=-2147483648;// -2147483648是int 的最小值。 for(int i=1;i<=n;i++){//注意行和列 maxn=max(maxn,t[i][j]);//求最大值。 } dp[j]=maxn; } int z[m+1]; z[0]=0; maxn=-2147483648; for(int i=1;i<=m;i++){ z[i]=max(z[i-1]+dp[i],dp[i]);//参考最大字段和那题。 //加上后一列的最大数或重新开一个新的区间 maxn=max(maxn,z[i]); } printf("%d",maxn); return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 易语言 —— 开山篇