原创 關於圖論的幾大算法(持續更新中)

dijstra的一般實現: #include<stdio.h> #include<vector> #include<string.h> #include<algorithm> using namespace std; typede

原创 matlab演奏愛爾蘭畫眉

clear all; tune4=0:0.0001:1; tune8_3=0:0.0001:1.5; tune8=0:0.0001:0.5; tune2=0:0.0001:2; tune2_3=0:0.0001:3; tune1=

原创 KM算法的真O(n^3)寫法

最近研究了下KM算法求二分圖的最大權匹配,網上一堆人講slack數組可以優化KM算法到O(n3),仔細研究了下發現他們的寫法和直接找min值,複雜度本質上是一樣的,感覺有點畫蛇添足。 看了一篇大佬的文章,找到了這個真O(n3)的寫

原创 分塊與線段樹

分塊,更改和查詢都是O(n\sqrt nn​)。 #include<stdio.h> #include<algorithm> #include<math.h> using namespace std; typedef struct

原创 01揹包(一般dp實現+樹形dp實現)

一般dp,要遍歷完整個二維數組。 #include<stdio.h> #include<algorithm> using namespace std; int dp[10000][10000]; int w[10000],v[10

原创 PSO算法(matlab實現)

老師佈置的作業,仿照B站上的PSO教學視頻,完成PSO算法。 這裏是藉助matlab,用PSO算法對內置的peaks函數進行了一個函數優化,並進行了粒子羣的仿真。 下面是收斂動畫和代碼。 clc clear all %% Par

原创 cache命中率對程序運行時間的影響真的很大嗎?

這幾天看到了一篇博文,叫CPU L2 緩存初探,其中作者想表達L2 cache和L3 cache存在巨大速度差,並且用go編了一段二分查找的程序,“果然”差了六倍有餘。 一開始,被忽悠住了,但後來自己用C編了同樣一段程序,發現不對

原创 自我複製機(C語言實現版)

剛看了北大劉田老師講的遞歸定理,忍不住好奇心,用C語言實現了他講的自我複製機。 其中爲了模擬圖靈機的可改變的輸入帶,我用了sprintf函數,使用字符數組input來暫時保存帶上的內容,方便改變。 這裏,轉義字符是一個大坑,所以我

原创 用戶級線程VS系統級線程

首先,說明一下python的多線程使用的用戶級線程,所以這裏使用python多線程作爲用戶級多線程的代表;c++標準庫thread使用的是系統級多線程,所以用c++多線程作爲系統級多線程的代表。 關於用戶級線程和系統級線程的具體區