#18.03.09 vijos1011清帝之惑之順治
背景
順治帝福臨,是清朝入關後的第一位皇帝。他是皇太極的第九子,生於崇德三年(1638)崇德八年八月二ten+six日在沈陽即位,改元順治,在位18年。卒於順治十八年(1661),終24歲。
順治即位後,由叔父多爾袞輔政。順治七年,多爾袞出塞射獵,死於塞外。14歲的福臨提前親政。順治帝天資聰穎,讀書勤奮,他吸收先進的漢文化,審時度勢,對成法祖制有所更張,且不顧滿洲親貴大臣的反對,倚重漢官。為了使新興的統治基業長治久安,他以明之興亡為借鑒,警惕宦官朋黨為禍,重視整飭吏治,註意與民休息,取之有節。但他少年氣盛,剛愎自用,急噪易怒,當他寵愛的董妃去世後,轉而消極厭世,終於匆匆走完短暫的人生歷程,英年早逝。他是清朝歷史上唯一公開歸依禪門的皇帝。
描述
順治喜歡滑雪,這並不奇怪, 因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待太監們來載你。順治想知道載一個區域中最長的滑坡。
區域由一個二維數組給出。數組的每個數字代表點的高度。下面是一個例子:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
順治可以從某個點滑向上下左右相鄰四個點之一,當且僅當高度減小。在上面的例子中,一條可滑行的滑坡為24-17-16-1。當然25-24-23-...-3-2-1更長。事實上,這是最長的一條。
格式
輸入格式
輸入的第一行表示區域的行數R和列數C(1 <= R,C <= 500)。下面是R行,每行有C個整數,代表高度h,0<=h<=10000。
輸出格式
輸出最長區域的長度。
樣例1
樣例輸入1
5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
樣例輸出1
25
限制
各個測試點2s
來源
Vivian Snow
1 #include <iostream> 2 #include <string.h> 3 #include <cstdio> 4 #include <stdlib.h> 5 #include <algorithm> 6View Code7 using namespace std; 8 struct area 9 { 10 int x, y;//坐標 (x,y) (行,列) 11 int high;//高度 12 }; 13 14 int r, c; 15 area f[250002]; 16 int dp[505][505] = { 0 }, map[505][505]; 17 18 int comp(const void *q, const void *w) 19 { 20 return ((struct area*)q)->high - ((struct area*)w)->high; 21 } 22 23 int main() 24 { 25 int direr[4] = { 0,0,-1,1 }, direl[4] = { -1,1,0,0 }; 26 cin >> r >> c;//r行數 c列數 27 int count = 0; 28 for (int i = 1; i <= r; i++) 29 for (int j = 1; j <= c; j++) 30 { 31 cin >> f[count].high; 32 f[count].x = i; 33 f[count].y = j; 34 map[i][j] = f[count].high; 35 count++; 36 } 37 qsort(f, count, sizeof(struct area), comp); 38 for (int i = 0; i<count; i++) 39 { 40 for (int j = 0; j <= 3; j++) 41 { 42 if (map[f[i].x + direr[j]][f[i].y + direl[j]]>map[f[i].x][f[i].y]) 43 dp[f[i].x + direr[j]][f[i].y + direl[j]] = max(dp[f[i].x + direr[j]][f[i].y + direl[j]], dp[f[i].x][f[i].y] + 1); 44 } 45 } 46 int max0 = 0; 47 for (int i = 1; i <= r; i++) 48 for (int j = 1; j <= c; j++) 49 max0 = max(max0, dp[i][j]); 50 printf("%d\n", max0+1); 51 return 0; 52 }
總算是搞出來了
然而耗時實在太多
# 狀態 耗時 內存占用 #1 Accepted 197ms 7.0 MiB #2 Accepted 49ms 3.898 MiB #3 Accepted 73ms 3.582 MiB #4 Accepted 27ms 2.719 MiB #5 Accepted 128ms 6.75 MiB #6 Accepted 26ms 2.75 MiB #7 Accepted 11ms 2.969 MiB #8 Accepted 99ms 6.0 MiB #9 Accepted 32ms 3.27 MiB #10 Accepted 90ms 6.215 MiB
到學了dp還有復雜度啥的再回過頭來看看吧…………
以及順治真的喜歡滑雪麽(小小聲)
#18.03.09 vijos1011清帝之惑之順治