持續更新題目中...
這個網誌的主要目的
是要紀錄一下寫過題目的內容
避免在日後忘記相同題型怎麼寫
像我現在就已經有好幾題忘記我當初到底在寫尛了
此外,也希望幫助到同為南一中的同學
同齡的可能幫不上忙,
但也快要到了升學長的時候
希望到時能藉由這個網站幫學弟們一些忙
(當然不是指把我的code抄去)
預計之後也會放上其他judge網站的解題
沒人看也可以
畢竟原本就打算是讓自己複習用才寫的網誌
但如果有人看到有疑惑或想法的話
也歡迎提問,我是不會討厭的(//▽//)
可以的話還是想要有人看...
想要有人討論阿...
2020年6月11日 星期四
2018年9月2日 星期日
2018年8月26日 星期日
TOJ136
我的作法是一一判斷每個位數的0~9出現次數為幾次
設i為0~9,k為某個位數
其中拆成i小於k,i=k,i大於k,3種狀況判斷
例如21375,
k為百位數,為3
計算百位數的0~9共出現幾次
i小於k
1~2出現(21+1)*100次 1xx,11xx...211xx
i=k
3出現21*100+75+1次 3xx,13xx...203xx,21300~21375
i大於k
4~9出現21*100次 4xx,14xx...204xx
其中0要注意的是因為少了0xx的部分,所以雖然是i<k
為(21+1)*100-100次
即完成百位數0~9總數的判斷,同樣道理判斷千位數,萬位數...即可
搞了我幾個小時
回頭看其實也是蠻水的
就一些數學
我的邏輯真的不夠清晰...
2018年8月22日 星期三
TOJ416
今天聽學長講課
非常滿足的吸收到很多...太多了點
其中也有講到這題
講到拆成6種狀態我突然就覺得好簡單...
明明之前一直覺得很難地說
不過想當然那麼容易...
也被提示到矩陣快速冪...立刻想到之前寫的
跟TOJ376相似,都是用矩陣快速冪把時間從O(n)壓到O(logn)
沒想到又遇到矩陣題...
而且更麻煩
搞不好這種矩陣題型蠻多的...我可不想再碰到了
不過這題比那題難多了...
大概搞了3個半小時,快崩潰了
矩陣真的很難理解= =
不過也很厲害...明明同屆卻有人能解出來...
總之對矩陣也更理解了
另外也學到了其他很多DP的觀念也有LCS,LIS之類的
有來真是太棒了
關於這題的筆記
非常滿足的吸收到很多...太多了點
其中也有講到這題
講到拆成6種狀態我突然就覺得好簡單...
明明之前一直覺得很難地說
不過想當然那麼容易...
也被提示到矩陣快速冪...立刻想到之前寫的
跟TOJ376相似,都是用矩陣快速冪把時間從O(n)壓到O(logn)
沒想到又遇到矩陣題...
而且更麻煩
搞不好這種矩陣題型蠻多的...我可不想再碰到了
不過這題比那題難多了...
大概搞了3個半小時,快崩潰了
矩陣真的很難理解= =
不過也很厲害...明明同屆卻有人能解出來...
總之對矩陣也更理解了
另外也學到了其他很多DP的觀念也有LCS,LIS之類的
有來真是太棒了
關於這題的筆記
總之大概就是這樣吧
很神奇的題目=A=
2018年8月21日 星期二
TOJ11
恩嘛...雖然懂原理了
但實作也很麻煩,遞迴真的很難思考=A=
搞了2,3個小時才搞定
果然我不適合呢:3
最後終於抓到蟲時快要爆炸了
小小的問題怎麼讓我抓了一個多小時的bug=A=
總之終於搞定這題了,很爽
也學會了mergesort了,雖然不知道實際應用如何...
頹廢了整個暑假,感覺都變智障了...
11.cpp
參考影片:Divide & Conquer 03 : Counting Inversion
但實作也很麻煩,遞迴真的很難思考=A=
搞了2,3個小時才搞定
果然我不適合呢:3
最後終於抓到蟲時快要爆炸了
小小的問題怎麼讓我抓了一個多小時的bug=A=
總之終於搞定這題了,很爽
也學會了mergesort了,雖然不知道實際應用如何...
頹廢了整個暑假,感覺都變智障了...
11.cpp
參考影片:Divide & Conquer 03 : Counting Inversion
2018年7月8日 星期日
2018年7月5日 星期四
2018年6月30日 星期六
TOJ376
吶...
TOJ還是不給submit,
不過我感覺是沒問題了,就先放上來吧
這題主要算是math題吧
我到現在還是搞不太懂就是
這題基本上最直觀的解法就是直接加上去
結果還是TLE...
仔細看數字有到百億...
我看學長AC的時間是零
又想到費氏數列其實是有公式的
就開始往「是否能直接帶入公式」的方向思考
讓時間從O(n)變成O(1)
結果一直爬文阿
已知費氏數列的公式了,費氏數列合的公式怎麼求也不知道
浪費了兩三張計算紙感覺都在耍白癡,像是寫了好幾行得出了s(n-1)+f(n)=s(n)之類的廢話
後來觀察了一下,突然發現s(i)=f(i+2)-1,就莫名其妙發現的規律
用程式跑幾個大數字也正確就是了
像前5項的和(1+1+2+3+5)=第7項(13)-1=12
然後就想說很高興的帶公式直接O(1)得解
結果發現一個致命問題...
不知道怎麼取mod...
又試了一段時間,結果還是放棄了阿...公式解>口<
不知不覺打了一堆幹話:3
總之後來發現了,原來費氏數列還有一種求法是O(logn)
來源網站
參考了一下,就實作看看,原理甚麼的不懂
畢竟我根本沒學過矩陣
然後就做出來了...
時間的話跟直接加比起來,當n=100000000(億),
相加耗費2秒多,矩陣只要不到0.001秒
看來是沒問題了...
搞了一個晚上終於解決,只是原理不知道心就是有點癢癢的
比較一下費氏數列我已知的三個解法
1.加法 : O(n) ,易實作,足以應付大部分狀況
2.公式解 O(1) ,應該不會用到,而且不夠彈性,像這題就想不到方法取mod(可能是我太笨QQ)
3.矩陣 O(logn) ,數字特別大會TLE才需要用到(約超過10^8)
376.cpp(不能完全AC,但可以參考
更新(7/4
TOJ修好後發現一堆問題
可惡...果然沒那麼順利...
結果又爬了一堆文
硬生生地把矩陣的算法之類的搞懂
...
真的有夠麻煩...
反正...終於AC了...
376-2.cpp(AC正解版
TOJ還是不給submit,
不過我感覺是沒問題了,就先放上來吧
這題主要算是math題吧
我到現在還是搞不太懂就是
這題基本上最直觀的解法就是直接加上去
結果還是TLE...
仔細看數字有到百億...
我看學長AC的時間是零
又想到費氏數列其實是有公式的
就開始往「是否能直接帶入公式」的方向思考
讓時間從O(n)變成O(1)
結果一直爬文阿
已知費氏數列的公式了,費氏數列合的公式怎麼求也不知道
浪費了兩三張計算紙感覺都在耍白癡,像是寫了好幾行得出了s(n-1)+f(n)=s(n)之類的廢話
後來觀察了一下,突然發現s(i)=f(i+2)-1,就莫名其妙發現的規律
用程式跑幾個大數字也正確就是了
像前5項的和(1+1+2+3+5)=第7項(13)-1=12
然後就想說很高興的帶公式直接O(1)得解
結果發現一個致命問題...
不知道怎麼取mod...
又試了一段時間,結果還是放棄了阿...公式解>口<
不知不覺打了一堆幹話:3
總之後來發現了,原來費氏數列還有一種求法是O(logn)
來源網站
參考了一下,就實作看看,原理甚麼的不懂
畢竟我根本沒學過矩陣
然後就做出來了...
時間的話跟直接加比起來,當n=100000000(億),
相加耗費2秒多,矩陣只要不到0.001秒
看來是沒問題了...
搞了一個晚上終於解決,只是原理不知道心就是有點癢癢的
比較一下費氏數列我已知的三個解法
1.加法 : O(n) ,易實作,足以應付大部分狀況
2.公式解 O(1) ,應該不會用到,而且不夠彈性,像這題就想不到方法取mod(可能是我太笨QQ)
3.矩陣 O(logn) ,數字特別大會TLE才需要用到(約超過10^8)
376.cpp(不能完全AC,但可以參考
更新(7/4
TOJ修好後發現一堆問題
可惡...果然沒那麼順利...
結果又爬了一堆文
硬生生地把矩陣的算法之類的搞懂
...
真的有夠麻煩...
反正...終於AC了...
376-2.cpp(AC正解版
訂閱:
文章 (Atom)
