浙江大學pat 1007

2021-06-20 16:59:32 字數 1000 閱讀 4759

注意點:

1. 一道需要思考才會寫的簡單的題目。思想是這樣的,有兩個儲存的序列,乙個是歷史最大序列用於儲存最大結果,乙個是當前最大序列用於儲存到當前位置的最大序列。從0到n考慮是否要將某個數加入序列中,比如考慮第i位,由於要找的是乙個連續的序列,所以考慮第i位是否是序列的一部分的時候,第i-1位肯定是已經被包括進序列了,所以對加上第i位後的值進行判斷,如果是乙個正數,說明這個序列可以繼續增長,和當前記錄的最大序列相比,更新最大序列;若果和是乙個負數,說明這個序列已經沒用了(到第i位的最大是乙個負數,那麼第i+1位加上乙個負數肯定都會更小吧),所以當前序列要進行更新,從第i+1位重新開始。

2. 注意輸出的是序列和以及開始位置結束位置的數值,不是對應的index,給的example剛好index和對應index的數值相同,容易誤導導致錯誤。

**如下:

#include

#include

#include

#include

#include

#include

#define maxnum 0x3f3f3f3f

#define maxlen 10001

#define starttime 8 * 60 * 60

#define endtime 21 * 60 * 60

#define max(a, b) (((a) > (b)) ? (a) : (b))

using namespace std;

typedef struct subseq;};

int num[10001];

int main()

if(maxrs.sum > maxs.sum)

}if(maxs.sum < 0)

printf("0 %d %d", num[0], num[k - 1]);

else

printf("%d %d %d", maxs.sum, num[maxs.s], num[maxs.e]);

return 0;

}

浙江大學pat 1001

注意點 1.對於輸出結果是負數先輸出負號 2.將結果轉化成char型別來進行輸出可以避免輸出 的複雜操作。這裡使用函式sprintf 實現。如下 include include include include include include define maxnum 0x3f3f3f3f defi...

浙江大學pat 1013

注意點 1.要建多少路,其實就是看有多少塊城市間是沒法到達的,即求乙個圖中聯通分支個數的問題。2.常用方法有dfs,並查集。3.此處選擇dfs。如下 include include include include include include define maxnum 0x3f3f3f3f de...

浙江大學PAT 乙級 1015 德才論 25

宋代史學家司馬光在 資治通鑑 中有一段著名的 德才論 是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。現給出一批考生的德才分數,請根據司馬光的理論給出錄取排名。輸入格式 輸入第1行給出3個正整數,分別為 n 105 ...