日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划 RQNOJ 吃西瓜 最大子段和三维版

發布時間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划 RQNOJ 吃西瓜 最大子段和三维版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

[說明]此題中出現的所有數全為整數
[背景]SubRaY有一天得到一塊西瓜,是長方體形的....
[題目描述]SubRaY發現這塊西瓜長m厘米,寬n厘米,高h厘米.他發現如果把這塊西瓜平均地分成m*n*h塊1立方厘米的小正方體,那么每一小塊都會有一個營養值(可能為負,因為西瓜是有可能壞掉的,但是絕對值不超過200).
現在SubRaY決定從這m*n*h立方厘米的西瓜中切出mm*nn*hh立方厘米的一塊小西瓜(一定是立方體形,長寬高均為整數),然后吃掉它.他想知道他最多能獲得多少營養值.(0<=mm<=m,0<=nn<=n,0<=hh<=h.mm,nn,hh的值由您來決定).
換句話說,我們希望從一個m*n*h的三維矩陣中,找出一個三維子矩陣,這個子矩陣的權和最大.

一個2*3*4的例子,最優方案為切紅色2*3*1部分
[數據范圍]
對于30%的數據,h=1,1<=m,n<=10
對于全部的數據,1<=h<=32,1<=m,n<=50,保證h<=m,n

輸入格式

首行三個數h,m,n(注意順序),分別表示西瓜的高,長,寬.
以下h部分,每部分是一個m*n的矩陣,第i部分第j行的第k個數表示西瓜第i層,第j行第k列的那塊1立方厘米的小正方體的營養值.

輸出格式

SubRaY所能得到的最大營養值

樣例輸入

樣例輸出

三維狀態圖像

?

?

?


?

?

題目很明了~

?

[cpp]?view plaincopy
  • #include<stdio.h>??
  • #include<iostream>??
  • using?namespace?std;??
  • int?h,m,n,i,j,k;??
  • int?s[51][51][51],a[51][51][51],f[51][51][51][51];??
  • int?ans;??
  • int?main()??
  • {??
  • ????scanf("%d%d%d",&h,&m,&n);??
  • ????for?(i=1;i<=h;++i)??
  • ????????for?(j=1;j<=m;++j)??
  • ????????????for?(k=1;k<=n;++k)??
  • ????????????{??
  • ????????????????scanf("%d",&a[i][j][k]);??
  • ????????????????s[i][j][k]=s[i][j-1][k]+s[i][j][k-1]-s[i][j-1][k-1]+a[i][j][k];??
  • ????????????}??
  • ????for?(int?sj=1;sj<=m;++sj)??
  • ????????for?(int?sk=1;sk<=n;++sk)??
  • ????????????for?(int?ej=sj;ej<=m;++ej)??
  • ????????????????for?(int?ek=sk;ek<=n;++ek)??
  • ????????????????{??
  • ????????????????????f[sj][sk][ej][ek]=-99999;??
  • ????????????????????for?(i=1;i<=h;++i)??
  • ????????????????????{??
  • ????????????????????????int?tem=s[i][ej][ek]-s[i][sj-1][ek]-s[i][ej][sk-1]+s[i][sj-1][sk-1];??
  • ????????????????????????f[sj][sk][ej][ek]=max(f[sj][sk][ej][ek]+tem,tem);??
  • ????????????????????????if?(f[sj][sk][ej][ek]>ans)?ans=f[sj][sk][ej][ek];??
  • ????????????????????}??
  • ????????????????}??
  • ????printf("%d/n",ans);??
  • ????return?0;??
  • }??
  • 總結

    以上是生活随笔為你收集整理的动态规划 RQNOJ 吃西瓜 最大子段和三维版的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。