用Hexo和Github.io搭建你的個人網站
前言之所以會想要設計給自己的一個部落格,是因為我之前在查詢演算法的相關資料時,看到很多人都是用github.io當自己的部落格,並搭配hexo讓自己的網站變得非常的精美、漂亮,所以便搞得我也想自己做一個網頁當自己的部落格。而由於本人的美感只能用「悽慘」兩字形容,所以只好用hexo上各位大神設計出的模板套用在自己的網頁上,讓我的部落格看起來也是有模有樣的,真的很感謝他們願意無私的供自己的作品給大家使用。
這篇文主要是想將我從設置github,到配置hexo,以及最後套用模板並個人化的過程記錄下來。畢竟有記錄下來,才算是真正的學到,也比較印象深刻。
Github1.首先我們要有Github的帳號,沒有的話就註冊一個吧。
2.在頁面的右上角處看到”+”號,按下去,並點選”New repository”。
3.接著將Repository name取名為username.github.io並按下最下方的Create repository
username為你帳號的名字,像我是scar0615,所以我的專案名稱為scar0615.github.io。
將Hexo連結Github1.首先我們需要 ...
Zerojudge - 大數運算
a021 大數運算大一的時候,只要寫OJ遇到大數,我都是直接用python,因為python支援大數運算,所以所有的大數題目就會變得簡單很多。而我也有用C寫過,加法是最簡單的,減法難了一點點、乘法難了一些但還應付得來,不過除法我就完全束手無策,光是看完做法並轉成code就花了大概八小時。
解題想法:1.將輸入的x,y字串轉成數字並順序顛倒地存入a,b陣列。2.加法:一個位數加完就cl++(cl代表數字c有幾位數),進位的時候如果是最大的位數進,cl再+1。3.減法:先用xBigger函式看ab大小,0表a<b,就讓c=b-a,並在最前面輸出負號;1表y>x,就讓c=b-a,然後直接輸出;2表x=y,直接輸出0。4.乘法:先乘完所有位數,再一一進位。5.除法:一樣先用xBigger函式看ab大小,若xBigger()=0就直接輸出0,>0的話就先讓b的位數對齊a,意思就是:
a = 123456b = 789
在b的最後面加0補齊,讓b的位數等於a的位數。
a = 123456b = 789000
對齊之後,再來就是除法的部分了,不過我們是用減法來完成。舉7/2 ...
網站記事
2021June6/29
blog誕生
改變blog外觀
將HackMD上的資料搬到這裡
6/30
寫Hexo+Github教學文
July7/21
新增分類
將文章都分類完畢
7/28
將所有文章中的超連結都變成按鈕
從Google變成Google
新增反白的文字標記
現在有這樣和這樣
7/31
新增各篇文章字數以及本站總字數
September9/10
解決8/13的Github必須強制使用Personal Access Token的問題9/23
替所有文章的封面增加圖片來源9/24
程式碼的展示從預設展開變成預設隱藏
封面圖源:Ourhome
Radix Sort
覺得這個排序法挺酷的,所以就把它實作出來了。
1234567891011121314151617181920212223242526272829303132333435363738394041424344#include<stdio.h>#include<stdlib.h>#include<time.h>int a,b,i;void radix(int n[],int l){ int op[l],s[l];//op use to calculate and s use to store int base=1,j,loc,times=1; while(base<=b){ //sort for(i=0;i<l;i++){op[i]=n[i]/base;} base*=10;loc=0; for(i=0;i<=9;i++){ for(j=0;j<l;j++){ ...
Zerojudge - DFS問題
a981 求和問題解題想法
這題我是參考Naukri的code,將他的dfs函式解讀,用自己的話寫而已。
接下來的解法是我自己解讀的,我並不知道他是不是這樣想的。
以範例測資為例:一開始先做到
5 10 15 20 next=50
加入30
5 10 15 20 30 next=80
這時候再加40就>100,然後40的下一個是50,符合第19行的條件,直接return。加入40
5 10 15 20 40 next=90
這時會遇到和加入30一樣的狀況,一樣return。加入50
5 10 15 20 50 next=100
因為=100,所以輸出5 10 15 20 50。5 10 15 20都做完了,所以i++,20換30。
5 10 15 30 next=60
在5 10 15 30的情況中,搭配40會剛好=100,所以輸出5 10 15 30 40。
以此類推,比較深的都窮舉完後就會慢慢的遞回來,最後做到不能再做為止就全部輸出完了。
AC (0.4s, 316KB)
1234567891011121314151617181920212223242 ...
迷宮問題
a982 迷宮問題#1解題想法
參考Naukri的做法,用BFS和Dijkstra走完整個迷宮,並印出(n-1,n-1)的值。
Step 1先判斷每一格是障礙物還是空地,若為障礙物=-1、空地=9999。Step 2令起點為1、index為1(index在這裡用來當作步數)Step 3每走一步就遍歷整個map,先讓change=0,如果走到步數和index一樣的地,就看周圍(東西南北)是否有地可走,如果這塊地符合下列兩個條件,就把該地的步數更新。
1.這塊地還沒走過(=9999)2.這塊地走過,但步數比index大。
Step 4每次遍歷時,只要整個迷宮的資料有被更新過,change=1。在每次遍歷結束時都會檢查迷宮的資料是否有變動,沒有就代表無路可走,輸出no solution,有的話就繼續遍歷,直到(n-1,n-1)被更新為止。
AC (3ms, 128KB)
12345678910111213141516171819202122232425262728293031323334353637#include<stdio.h>#include<string.h ...
背包問題
只要找到什麼代表時間,什麼代表重量,就能解。
b184: 5. 裝貨櫃問題解題想法
依序考慮每個物品放或不放到背包,若放到背包後,形成更大的價值就放入背包中。
Step 1依序考慮每個物品,考慮第i個物品是否要加入背包。假設第i個物品重x公斤、背包裡的物品共t公斤重,若(t公斤物品的總價值 + 第i個物品的價值 ) > 原本t+x公斤物品的總價值 ,則將原本t+x公斤物品的總價值 更新成t公斤物品的總價值+第i個物品的價值 。Step 2使用陣列k儲存各個負重重量的最大價值。
AC (2ms, 312KB)
1234567891011121314151617181920#include<iostream>#include<cstring>using namespace std;int v[101],c[101],t[101];int main(){ int n,i,j; while(cin>>n){ memset(t,0,sizeof(t)); for(i=0;i<n;i ...