前言:
在linkedin leetcode po的文章留過一次言(抽7天 premium 幸運有抽到),應該是這個動作,讓我被找上了吧。
總而言之被Leetcode的裡面一位不知道是不是招募員還是誰找上了。
問我要不要加入 Leetcode problem adder / tester。
我比較有興趣的Tester。
前言:
在linkedin leetcode po的文章留過一次言(抽7天 premium 幸運有抽到),應該是這個動作,讓我被找上了吧。
總而言之被Leetcode的裡面一位不知道是不是招募員還是誰找上了。
問我要不要加入 Leetcode problem adder / tester。
我比較有興趣的Tester。
題目連結: https://cpe.cse.nsysu.edu.tw/cpe/file/attendance/problemPdf/11258.pdf
題目大意: 給你一串數字,問你怎麼切(切的時候數字不能超過32位元),能夠使得數字總和最大。
思路: DP, 每個位置開始往後延伸,每次都切看看,並記憶化搜索。
代碼:
#include <bits/stdc++.h>
前言:
我來分享一下我實習心得, 一方面是紀錄,另一方面是以後正職的時候我可以拿來做參考。
主要投純軟, 或是IC設計,軟韌體(C/C++), 但是工作內容太硬體我無法(e.g 聯詠)。
這篇打很久,有點累。
背景:
題目連結: 202101: Problem 9. 實體物件排序中最少搬運次數 (itsa.org.tw)
題目大意: 一道典型的問題,可以任意交換,算交換次數。
思路: DFS算環的大小。比如說 3 1 2。3想要到3號位置。3到了3號位置後,現在值是2想要去2號。最後2到1號。
注意多環。 e.g 2 1 4 3。反正就每個環都算大小,並且標記走過。避免無窮迴圈。題外話 itsa judge 依舊怪。
代碼:
題目連結: 202101: Problem 8. 阿 北 !出事了阿 北 (itsa.org.tw)
題目大意: 所有A到B最短路徑。
思路: 看到最短路徑,BFS直接做就可。標記狀態是否窄路。然後用一個陣列存最短路值,避免繞圈圈
代碼:
ITSA/Problem 8. 阿 北 !出事了阿 北.cpp at master · louisfghbvc/ITSA (github.com)
題目連結: 202101: Problem 6. 歲末年終慶 (itsa.org.tw)
題目大意: 所有點最短路徑裸題。查詢a到b最短路徑
思路: 這邊直接用 floyd warshall。O(N^3).
代碼:
ITSA/Problem 6. 歲末年終慶.cpp at master · louisfghbvc/ITSA (github.com)
題目連結: 202101: Problem 3. 消失的島嶼 (itsa.org.tw)
題目大意: 水位上升一個,剩餘格子有多少個,注意水位是八方位。
思路: 其實也不用bfs, dfs,直接看八方向有沒有島嶼,只要有一個是海,那麼這格就必定沉。
時間複雜度 O(NM)
代碼:
題目連結: 202101: Problem 1. 熱當機 (itsa.org.tw)
題目大意: 照那個公式算溫度。
思路: 直接模擬。記得無條件捨去。 題外話,itsa題目釋出的好慢==。都5月了才出1月。
btw, 以後應該不會直接貼代碼在這,太醜。
代碼:
題目連結: 11489.pdf (onlinejudge.org)
題目大意: 兩個玩家拿數字,玩家拿數字只能拿讓剩下數字總合為3的倍數,比如1234 可以拿1,因為2+3+4=9
思路: 類似賽局, 前處理先把數字次數記起來。接著用dp, 也就是dfs + memo,dp[i][1] 表示S為True的情況下,總合為i 的結果是可以達到還是不行,
所以說如果是S的情況他就要找是不是有一個1~9的數字使得我現在 總和-數字 整除3,繼續遞迴,S想得到True的結果。另一玩家相反。
更: 以下代碼Uva 可以過 但是ZeroJudge不能過。
題目連結 : 12218.pdf (onlinejudge.org)
題目大意 : 問這個數字的排列,子集合共有幾個質數
思路: 建立質數表,暴力法,枚舉所有子集合,每枚舉一種子集合,就嘗試所有子集合排列組合。子集合枚舉方式可參考Leetcode subset那題。
有其他作法,雖然用2進位很潮。
代碼:
題目連結: 11495.pdf (onlinejudge.org)
題目大意: 算逆序數對,判斷數對是奇數還偶數,CPE的話則多印出數值。
思路: 兩種做法,BIT, MergeSort. 這邊用BIT(Binary Index Tree)。很簡短
首先要先知道BIT是甚麼,先假設已經了解BIT。簡單來說用lowbit來加速存取。
至於為啥這裡能用BIT去寫呢。因為題目數值範圍可以用陣列存。如果1e9就只能用別的方法了。
LeetCode 至今也刷了一年多了,點數也9千多。之前買了6800的禮物。解題數快8百題。
分享一下流程,說實在效率極差,
提出申請2020/10/18: 購買的日子
工作人員回信 2020/10/20: 問T-shirt Size跟一些個人訊息
再次詢問2020/11/03: TM太久,我問甚麼時候可以寄來