Walle Blog

Welcome to my blog!

前情提要

這篇文章記錄了在 UVA Online Judge 刷題的過程,挑戰了兩個不同類型的題目,分別是 227 - Puzzle 與 1586 - Molar mass。

[227 - Puzzle] 這是一道模擬操作的題目,目標是在 5x5 的字串陣列中移動空白格,根據指令 (A 上移、B 下移、L 左移、R 右移) 更新陣列的配置。挑戰在於處理輸入格式和確保操作合法性 (不超出邊界)。 本題的重點在於模擬過程是否正確,並輸出最終的字串陣列,若指令導致非法操作,則需輸出錯誤訊息。

[1586 - Molar mass] 這是一道字串解析的題目,要求計算化學式的分子量。需依據化學元素的符號及其後的數字 (若無則預設為 1) 計算權重,最後輸出結果。 難點在於精確解析字串並將權重正確累加,對效能的處理也很重要。

閱讀全文 »

前情提要

這篇文章是關於 Virtual Judge 刷題的紀錄,主要記錄了解題的過程和心得。在 08/21 的刷題中,挑選了 P2249 這道題目,並使用了經典的 二分搜尋法 (Binary Search) 來解題。文章會分享解題的邏輯、程式碼,以及一些關於該題的細節,幫助讀者了解如何高效地透過二分搜尋法解決問題。

題目要求我們在一個排序的數列中,尋找某些目標數字的首次出現位置。為了達到高效搜尋,程式利用二分搜尋法縮小範圍,並在找到匹配的數字時,記錄它的索引位置。接下來將分享這段程式碼的完整實現與運作流程!

閱讀全文 »

前情提要

在部署 Django 專案時,雖然可以使用 python manage.py runserver 指令來啟動伺服器,但這樣的做法在處理靜態檔案時效能不佳,尤其是在面對大量訪問時,效能瓶頸會更加明顯。實務上,我們常使用反向代理(reverse proxy)來提升效能,並避免直接使用 Django 的開發伺服器。Nginx 作為反向代理,不僅可以處理靜態檔案,還能分流請求,提升應用的安全性與效能。

此外,與 .NET Core 可以透過編譯並打包成單一可部署檔案的方式不同,在 Python 環境下,我們需要借助像 uWSGI 這類的工具,作為 Nginx 與 Django 之間的橋樑,以實現高效的應用程式部署。

閱讀全文 »

前情提要

這篇文章記錄了我今天在 UVA Online Judge 的刷題過程,挑戰了兩道題目,分別是與邏輯判斷相關的題目和簡單的輸入輸出處理題。透過這些題目,練習了模擬操作與字串處理的技巧,以下是解題紀錄與程式碼實現。

解題程式

  • 題目連結 340

  • 這題題目的意思就是我要到 0 就代表了要結束輸入,也就是程式要結束,然後如果 guess[0] 因為他有說範圍 1~9 所以 0 就代表這筆測試資料結束,那麼我們就會知道輸入怎麼做處理,現在剩下邏輯的部份,那我的想法就是分別計算 位置和數字都完全等於的數目,在用矩陣去紀錄哪些已經數字已經被記錄了,如果都沒有被記錄過,guess[i] == key[j] 哪麼我就把它記錄下來處理後就是答案了。

閱讀全文 »

前情提要

  • 因為有個困擾就是,我常常因為要切不同框架撰寫前後端,所以有時候用的 vscode extension 都會不同,這個問提困擾我很舊,因為每次打開 vscode 就很久,直到有天我發現可以使用 vscode profile 去切割不同的開發環境所需要的 extension,從此我的 vscode 開啟速比以前為管理前快多了…。

  • 我的習慣是我 Default profile 會用來作為其他 profile 的 base 所以我會裝一些常用的工具在 Default profile 這樣就可以複製到新的 profile 上然後繼續裝上自己需要使用的 extension。

閱讀全文 »

這篇文章紀錄了 Virtual Judge 在 08/15 的刷題心得,挑戰了題目 HDU-1232,並使用 深度優先搜尋 (DFS) 解決問題。本題的核心在於判斷一個圖是否為連通圖,並計算需要新增的邊數來使其變成完全連通的圖。

解題程式

  • 題目連結 HDU-1232

  • 我的想法是 dfs 走過的所有點的連通分量加總就可以知道是不是連通圖了,再減去 1 是為了題目所要的描述,他需要加上幾條邊才能使得變成連通圖 (Connected graph),因為如果不是連通圖 connect > 1。

閱讀全文 »

前情提要

這篇文章記錄了我今天在 Codeforces 上刷題的過程,挑戰了兩道不同類型的題目:一題與深度優先搜尋 (DFS) 有關,另一題是簡單的矩陣處理與輸出問題。在這兩題中,我練習了圖論遍歷的技巧以及對多維陣列的操作,希望藉由這些題目進一步提升解題的效率與思路!

閱讀全文 »

解題程式

  • 題目連結

  • 我的想法是,既然他說,要有 cyclic 這個字眼了所以我當然需要判斷哪個距離比較小 minimum distance 題目也有說到,所以我就要把 abs(s[i] - new_char)26 - abs(s[i] - new_char)兩個方向的距離都算出來,在判斷有沒有 小於等於,然後就把 k 每次更新就是把 k-=dist,並且把 t 也更新,最後回傳 t 就好了。

閱讀全文 »

使用 VIM 的好處

VIM 是一款非常強大的文本編輯器,特別受到開發者的喜愛。這篇文章將重點介紹 VIM 的快捷鍵及其優點:

  • 效率高:VIM 的鍵盤操作設計,使得在不需要移動手指離開鍵盤的情況下,可以快速進行文本編輯,極大地提高了生產力。
  • 個人習慣:我最近開始練習演算法,加上之前參加過技能競賽(資網職種),已經習慣使用 VIM。
  • 功能強大:VIM 是一個輕量級的編輯器,但它提供了非常強大的功能,能夠處理各種編輯任務。
閱讀全文 »

Google Analytics 簡介

Google Analytics (GA) 網路分析工具,主要用於追蹤和報告網站流量。透過詳細的資料和洞察力,GA 幫助網站擁有者優化網站性能和使用者體驗。以下是其主要功能:

  1. 訪客追蹤:追蹤訪客來源、在站點的停留時間及瀏覽頁面。
  2. 流量來源分析:報告顯示訪客來自何處,包括搜尋引擎、社交媒體平台或其他外部連結。
  3. 行為洞察:分析訪客的互動行為,如點擊率、離開率和轉化率。

先前文章有先簡介過 Hexo 那們我們加上 GA 的功能可以使我們的 GitHub Pages 上有可以分析訪客是從哪邊來的,讓我們可以更輕易的去調整我們的網頁,BTW 如果沒有看過先前文章可以先看參考連結

閱讀全文 »
0%