參考程式碼 ,最後有另一組建質數表的 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月31日 星期三
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不含空格
輸出說明 :...