設B是一個n×n棋盤,n=2k,(k=1,2,3,…)。用分治法設計一個算法,使得:用若干個L型條塊可以覆蓋住B的除一個特殊方格外的所有方格。其中,一個L型條塊可以覆蓋3個方格。且任意兩個L型條塊不能重疊覆蓋棋盤
標簽:
上傳時間: 2013-12-16
上傳用戶:腳趾頭
[輸入] 圖的頂點個數N,圖中頂點之間的關系及起點A和終點B [輸出] 若A到B無路徑,則輸出“There is no path” 否則輸出A到B路徑上個頂點 [存儲結構] 圖采用鄰接矩陣的方式存儲。 [算法的基本思想] 采用廣度優先搜索的方法,從頂點A開始,依次訪問與A鄰接的頂點VA1,VA2,...,VAK, 訪問遍之后,若沒有訪問B,則繼續訪問與VA1鄰接的頂點VA11,VA12,...,VA1M,再訪問與VA2鄰接頂點...,如此下去,直至找到B,最先到達B點的路徑,一定是邊數最少的路徑。實現時采用隊列記錄被訪問過的頂點。每次訪問與隊頭頂點相鄰接的頂點,然后將隊頭頂點從隊列中刪去。若隊空,則說明到不存在通路。在訪問頂點過程中,每次把當前頂點的序號作為與其鄰接的未訪問的頂點的前驅頂點記錄下來,以便輸出時回溯。 #include<stdio.h> int number //隊列類型 typedef struct{ int q[20]
標簽: 輸入
上傳時間: 2015-11-16
上傳用戶:ma1301115706
Floyd-Warshall算法描述 1)適用范圍: a)APSP(All Pairs Shortest Paths) b)稠密圖效果最佳 c)邊權可正可負 2)算法描述: a)初始化:dis[u,v]=w[u,v] b)For k:=1 to n For i:=1 to n For j:=1 to n If dis[i,j]>dis[i,k]+dis[k,j] Then Dis[I,j]:=dis[I,k]+dis[k,j] c)算法結束:dis即為所有點對的最短路徑矩陣 3)算法小結:此算法簡單有效,由于三重循環結構緊湊,對于稠密圖,效率要高于執行|V|次Dijkstra算法。時間復雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍色部分,可以更直觀地得到I,j的連通情況。
標簽: Floyd-Warshall Shortest Pairs Paths
上傳時間: 2013-12-01
上傳用戶:dyctj
編寫一個用SOR法解方程組Ax=b的計算機程序,其中 要求程序中不存系數A,分別對不同的階數(例如n=15,80)取w=1.7,1.8,1.9,進行迭代,記錄近似解 達到 時所用迭代次數k,觀察松弛因子對收斂速度的影響。
上傳時間: 2013-12-25
上傳用戶:wcl168881111111
5.22④ 假設系數矩陣A和B均以三元組表作為存儲結構。 試寫出滿足以下條件的矩陣相加的算法:假設三元組表A 的空間足夠大,將矩陣B加到矩陣A上,不增加A、B之外 的附加空間,你的算法能否達到O(m+n)的時間復雜度?其 中m和n分別為A、B矩陣中非零元的數目。
上傳時間: 2013-12-13
上傳用戶:coeus
3.畫橢圓ellipse 4.利用ellipse and rectangle 畫圖 5.一個最優美的圖案 6.輸入3個數a,b,c,按大小順序輸出 :輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。 7.有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面的m個數
上傳時間: 2016-11-16
上傳用戶:royzhangsz
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上傳時間: 2014-11-10
上傳用戶:wpwpwlxwlx
溫度華氏轉變攝氏 #include <stdio.h> #include <stdlib.h> enum x {A,B,C,D,E} int main(void) { int a=73,b=85,c=66 { if (a>=90) printf("a=A等級!!\n") else if (a>=80) printf("73分=B等級!!\n") else if (a>=70) printf("73分=C等級!!\n") else if (a>=60) printf("73分=D等級!!\n") else if (a<60) printf("73分=E等級!!\n") } { if (b>=90) printf("b=A等級!!\n") else if (b>=80) printf("85分=B等級!!\n") else if (b>=70) printf("85分=C等級!!\n") else if (b>=60) printf("85分=D等級!!\n") else if (b<60) printf("85分=E等級!!\n") } { if (c>=90) printf("c=A等級!!\n") else if (c>=80) printf("66分=B等級!!\n") else if (c>=70) printf("66分=C等級!!\n") else if (c>=60) printf("66分=D等級!!\n") else if (c<60) printf("66分=E等級!!\n") } system("pause") return 0 }
上傳時間: 2013-12-12
上傳用戶:亞亞娟娟123
Problem B:Longest Ordered Subsequence A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence (a1, a2, ..., aN) be any sequence (ai1, ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).
標簽: Subsequence sequence Problem Longest
上傳時間: 2016-12-08
上傳用戶:busterman
設B是一個n×n棋盤,n=2k,(k=1,2,3,…)。用分治法設計一個算法,使得:用若干個L型條塊可以覆蓋住B的除一個特殊方格外的所有方格。其中,一個L型條塊可以覆蓋3個方格。且任意兩個L型條塊不能重疊覆蓋棋盤。
標簽:
上傳時間: 2013-12-19
上傳用戶:xc216