2016年8月31日 星期三

To P2 之 a010質因數分解

參考程式碼 ,最後有另一組建質數表的 genp程式 // a010 #include <iostream> #include <cstring> #include <vector> #include <cmath> #define maxn 46340  // sqrt(2147483647) < 46341 using namespace std; bool c[maxn+10]; vector <int> p;    // 2~46340之間的質數共有 4792個,p[4791]=46337 ,前46327後46349 // 以下 isp 為函式, 傳入 n 判斷是否為質數  bool isp(int n) {   if(n<=maxn) return( !c[n]...

2016年8月28日 星期日

商競104F-P42最小成本生成樹(VB參考)

這是依商業技藝競賽程式104年正式題第4題子題2稍微修改資料檔第1列 一個數字 n ,代表 n 組資料,接著每組資料一列每一列為一個圖形所有「邊」以空格隔開,「邊」由3個以逗號隔開的數字組成{2個節點及成本}每組資料印出1個數字,算出圖形的最小成本生成樹的成本。 參考程式碼: '最小成本生成樹 MST Const MaxM As Integer = 20 '最多20邊 Const MaxN As Integer = 26 '最多26點 Dim eg(MaxM) As String '邊 Dim ct(MaxM) As Integer  '成本 Dim rt(MaxN) '此點的根 Dim ht(MaxN) '此點的高 Dim n As Integer '節點數 Dim m As Integer '邊數 Private Sub Form1_Load(ByVal...

商競104F-P42最小成本生成樹(CPP參考)

這是依商業技藝競賽程式104年正式題第4題子題2稍微修改資料檔第1列 一個數字 n ,代表 n 組資料,接著每組資料一列每一列為一個圖形所有「邊」以空格隔開,「邊」由3個以逗號隔開的數字組成{2個節點及成本}每組資料印出1個數字,算出圖形的最小成本生成樹的成本。 參考程式碼: #include <iostream> #include <sstream> #include <algorithm> using namespace std; const int MaxM = 20;  //最多 20 邊 const int MaxN = 26;  //最多 26 點 struct egs { int k;  // 成本 int a,b;  // a-b 相鄰 } eg[MaxM]; int rt[MaxN];  //...

商競104F-P41二搜+後巡(VB版參考)

這是依商業技藝競賽程式104年正式題第4題子題1稍微修改 資料檔第1列 一個數字 n ,代表 n 組資料,接著每組資料二列 每組的第1列一個數字x,每組第2列 x 個數字以逗號隔開 將讀入的 x 數字建成二元搜尋樹,然後依二元樹的後序拜訪 印出 參考程式碼:  Dim dt(20) As Integer  '資料  Dim chi(20, 1) As Integer '左、右子樹  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     FileOpen(1, "in1.txt", OpenMode.Input)    ' FileOpen(2, "in2.txt",...

商競104F-P41二搜+後巡(CPP版參考)

這是依商業技藝競賽程式104年正式題第4題子題1稍微修改資料檔第1列 一個數字 n ,代表 n 組資料,接著每組資料二列每組的第1列一個數字x,每組第2列 x 個數字以逗號隔開將讀入的 x 數字建成二元搜尋樹,然後依二元樹的後序拜訪 印出 參考程式碼: /* 104f-p41_bst-pos 將 n 個數字建二元搜尋樹,再以後序巡訪序印出 第一列 整數 t:代表有 t組資料{ 0<t<10 }, 接著每組2列 每組第1列為 整數 n:代表有 n 個數字 { 3<= n <= 20 } , 每組第2列有 n 個以逗號隔開的整數 vi {  0 <= vi <=99 for i=1~n } */ #include <iostream> using namespace std; const int MaxN = 21; //本題最多20個節點 struct...

商競103M-P31是否為樹(CPP版參考)

這是依商業技藝競賽程式103年模擬題第3題子題1稍微修改資料檔第1列 一個數字 n ,代表 n 組資料{0<n<10},接著每組資料一列每列是一個圖形的所有「邊」以空白隔開 ,每一個「邊」是由兩數字以逗號連接判斷這個圖形是否為一棵樹,是印T否印F參考程式碼: /* b517: 是否為樹-商競103 標籤 : dfs tree 這是 103年商業技藝競賽模擬題的 P31題,原題中對樹的描述就先省略了。 給一個圖形的邊的資訊,判斷是否為一棵樹? 輸入說明 : 每組測資檔的第1列為一個數字 n ,代表以下有 n 列,每列為一個圖形的相鄰節點(邊)的資訊:          每列中的所有邊皆由 i,j 表示,邊與邊之間以空格隔開, 0<=i,j <=80, i及j為相鄰的兩節點編號,以「,」連接i,j不含空格 輸出說明 :...