時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 32768k,其他語言65536k
64bit io format: %lld
題目描述
最近,奶牛們熱衷於把金幣包在麵粉裡,然後把它們烤成餡餅。第i塊餡餅中含有ni(1<=ni<=25)塊金幣,並且,這個數字被醒目地標記在餡餅表面。
奶牛們把所有烤好的餡餅在草地上排成了乙個r行(1<=r<=100)c列(1<=c<=100)的矩陣。你現在站在座標為(1,1)的餡餅邊上,當然,你可以拿到那塊餡餅裡的所有金幣。你必須從現在的位置,走到草地的另一邊,在座標為(r,c)的餡餅旁邊停止走動。每做一次移動,你必須走到下一列的某塊餡餅旁邊,並且,行數的變動不能超過1(也就是說,如果現在你站在座標為(r,c)的餡餅邊上,下一步你可以走到座標為(r-1,c+1),(r,c+1),或者(r+1,c+1)的餡餅旁邊)。當你從一塊餡餅邊經過,你就可以拿走餡餅裡所有的金幣。當然啦,你一定不會願意因半路離開草地而失去唾手可得的金幣,但,最終你一定得停在座標為(r,c)的餡餅旁邊。
現在,你拿到了一張標記著餡餅矩陣中,每一塊餡餅含金幣數量的**。那麼,按照規則,你最多可以拿到多少金幣呢?
比方說,奶牛們把餡餅排成如下的矩陣,矩陣中的數字表示該位置的餡餅中含金幣的數量:
起點-> 6 5 3 7 9 2 7
2 4 3 5 6 8 6
4 9 9 9 1 5 8 <-終點
以下是一條合法的路線:
起點-> 6 5 3 7 9 2 7
\2 4 3 5 6 8 6
\ / \
4 9 9-9 1 5-8 <-終點
按上述的路線進行走動,一共可以獲得6+4+9+9+6+5+8=47個金幣。按照規則,在這個矩陣中最多可以得到50個金幣,路線如下圖所示:
起點-> 6 5 3 7 9 2 7
\2 4 3 5 6-8 6
\ / \
4 9 9-9 1 5 8 <-終點
(請複製到記事本中用等寬字型檢視)
輸入描述:
第1行: 兩個用空格隔開的整數,r和c
第2…r+1行: 每行包含c個用空格隔開的正整數,依次表示一行中從左往右各個餡餅裡金幣的數量
輸出描述:
第1行: 輸出乙個正整數,表示你所能收集到的最大金幣數目
示例1輸入
3 76 5 3 7 9 2 7
2 4 3 5 6 8 6
4 9 9 9 1 5 8
輸出ac**:
#include
#define inf 0x3f3f3f3f
#define endl '\n'
#define pb push_back
#define css(n) cout<#define sd(a) scanf("%d",&a)
#define sld(a) scanf("%lld",&a)
#define m(a,b) memset(a,b,sizeof a)
#define p_queue priority_queue
using namespace std;
typedef
long
long ll;
const
int maxn=
105;
int n,m;
int t;
double a,b;
int arr[maxn]
[maxn]
;int dp[maxn]
[maxn]
;int
main()
memset
(dp,
-0x3f
,sizeof
(dp));
dp[1]
[1]=arr[1]
[1];
for(
int j=
2;j<=m;j++)}
printf
("%d\n"
,dp[n]
[m])
;return0;
}
牛客網 牛客假日團隊賽5 數字遊戲 模擬
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 奶牛們又在玩一種無聊的數字遊戲。輸得很鬱悶的貝茜想請你寫個程式來幫她在開局時 結果。在遊戲的開始,每頭牛都會得到乙個數n 1 n 1,000,000 此時奶牛們的分數均...
牛客假日團隊賽 A 乘積最大
今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘號將它分成...
牛客假日團隊賽1 B
farmer john最討厭的農活是運輸牛糞。為了精簡這個過程,他製造了乙個偉大的發明 便便傳送門!與使用拖拉機拖著裝滿牛糞的大車從乙個地點到另乙個地點相比,他可以使用便便傳送門將牛糞從乙個地點瞬間傳送到另乙個地點。farmer john的農場沿著一條長直道路而建,所以他農場上的每個地點都可以簡單地...