浙大PAT甲級 1002

2021-08-01 19:42:46 字數 795 閱讀 5465

這道題是大一的時候就做過的,當時剛**算符過載。現在我用的是鍊錶來做的,也算是複習一下快忘光的資料結構吧。

#include #includeusing namespace std;

//節點(多項式的項)

struct listnode

listnode(int e, double c)

};class list

//輸入,初始化鍊錶

void init(int n)

} //插入節點

void insert(int e, double c)

else

last->link = null;

} //將係數為0的節點都剪掉

void merge()

if (first != null)

else

m = m->link;

}} }

//鍊錶長度

int length()

return cnt;

}};int main()

else if (ca->exp == cb->exp)

else

} if (ca != null)

} else if (cb != null)

} c.merge();

cout << c.length();

listnode *m = c.first;

while (m != null)

cout << endl;

} return 0;

}

浙大pat甲級 1024

可用3個vector來進行處理,先將輸入的數字都壓入到第1第2個vector中,從i 0到k迴圈判斷是否為對稱數,如果不是對稱數則將其與倒轉數相加,並將得到的每一位數加入到第三個vector的頭部,並將新的第三個vector重新賦值給第一第二,直到該數為對稱數或i k結束迴圈。ac include ...

浙大PAT甲級 1039

一開始想到用map 但是會超時。由於題目中的名字由三個字母和乙個數字組成,因此有26 26 26 10種,因此可以用hash來做。使用setmm max max 26 26 26 10 5 同時輸入名字時也應改為char s 5 scanf來輸入。ac include include include...

浙大PAT甲級 1045

這個題考查dp,最長非遞減序列。dp i 表示以a i 為結尾的最長非遞減序列。初始化dp為1,狀態轉移方程為dp i max 1,dp j 1 j特別注意 沒有出現在最喜愛的序列中的數,其優先順序為0,在考慮最長非遞減序列時,應直接忽略0。ac include include include in...