『壹』 道路交叉口的瀝青面積如何計算
道路交叉口因為是不規則路面,所以計算辦法可以採取不同的方法進行計算,主要方法主要有:
方法一、用CAD,按比例畫上,測出面積,測出結果。
方法二、用廣聯達軟體圖形算量軟體按照比例,定義為混凝土板,根據圖紙畫圖,匯總計算出面積。
方法三、將路口用鉛筆和尺子進行分割,分割成四邊形,三角形,扇形等規則的圖形,再進行計算。
『貳』 前進的道路:從起點一數字1出發,順次經過每一個分叉口,選擇+,-,×,÷四種運算之一進行運算,到達目
[1-(-2)]÷3-(-4)+5=10;[1-(-2)]×3-4+5=10.
故答案為:[1-(-2)]÷3-(-4)+5=10;[1-(-2)]×3-4+5=10.
『叄』 分岔口還是分叉口
倆個都是可以的。
交叉指的是幾個不同方向的線條或道路互相穿過,叉口是指兩條道路交錯穿插的路口,如十字路口,而岔強調的是分支,分歧,意思基本一樣。
『肆』 關於高速路上的分叉口的問題
那些橫折線是兩側通行標線。因為高速路上不允許倒車,所以,如果你進入了右側車道入口,要轉入左側必須倒車的話,那是絕對不行的,只能下道後重新上路;如果尚未進入右側路口,且後方沒有緊隨的車輛,在保證安全的情況下,應該可以左轉進入直行道。
『伍』 從數字1開始依次經過每個分叉口
(1+2)*3-4+5=10
『陸』 深度優先演算法 和 寬度優先演算法 的優缺點
1、深度優先演算法佔內存少但速度較慢,廣度優先演算法佔內存多但速度較快,在距離和深度成正比的情況下能較快地求出最優解。
2、深度優先與廣度優先的控制結構和產生系統很相似,唯一的區別在於對擴展節點選取上。由於其保留了所有的前繼節點,所以在產生後繼節點時可以去掉一部分重復的節點,從而提高了搜索效率。
3、這兩種演算法每次都擴展一個節點的所有子節點,而不同的是,深度優先下一次擴展的是本次擴展出來的子節點中的一個,而廣度優先擴展的則是本次擴展的節點的兄弟點。在具體實現上為了提高效率,所以採用了不同的數據結構。
『柒』 前進的道路:從起點—數字1出發,順次經過每一個分叉口,選擇+,—,×,÷四種運算之一進行運算,到達目
(1+2+3-4)*5=10
(1+2)*3-4+5=10
(1+2)/3+4+5=10
加括弧只是為了方便看 就是按照運算符號的順序從左到右計算就行了
『捌』 深度優先演算法解決八數碼問題
首先我們來想像一隻老鼠,在一座不見天日的迷宮內,老鼠在入口處進去,要從出 口出來。那老鼠會怎麼走?當然是這樣的:老鼠如果遇到直路,就一直往前走,如果遇到分叉路口,就任意選 擇其中的一個繼續往下走,如果遇到死胡同,就退回到最近的一個分叉路口,選擇另一條道路再走下去,如果 遇到了出口,老鼠的旅途就算結束了。深度優先搜索法的基本原則就是這樣:按照某種條件往前試探搜索,如 果前進中遭到失敗(正如老鼠遇到死胡同)則退回頭另選通路繼續搜索,直到找到條件的目標為止。
實現這一演算法,我們要用到編程的另一大利器--遞歸。遞歸是一個很抽象的概念, 但是在日常生活中,我們還是能夠看到的。拿兩面鏡子來,把他們面對著面,你會看到什麼?你會看到鏡子中 有無數個鏡子?怎麼回事?A鏡子中有B鏡子的象,B鏡子中有A鏡子的象,A鏡子的象就是A鏡子本身的真實寫 照,也就是說A鏡子的象包括了A鏡子,還有B鏡子在A鏡子中的象………………好累啊,又煩又繞口,還不好理 解。換成計算機語言就是A調用B,而B又調用A,這樣間接的,A就調用了A本身,這實現了一個重復的功能。再 舉一個例子;從前有座山,山裡有座廟,廟里有個老和尚,老和尚在講故事,講什麼呢?講:從前有座山,山 里有座廟,廟里有個老和尚,老和尚在講故事,講什麼呢?講:從前有座山,山裡有座廟,廟里有個老和尚, 老和尚在講故事,講什麼呢?講:…………。好傢伙,這樣講到世界末日還講不玩,老和尚講的故事實際上就 是前面的故事情節,這樣不斷地調用程序本身,就形成了遞歸。 萬一這個故事中的某一個老和尚看這個故事不 順眼,就把他要講的故事換成:「你有完沒完啊!」,這樣,整個故事也就嘎然而止了。我們編程就要注意這 一點,在適當的時候,就必須要有一個這樣的和尚挺身而出,把整個故事給停下來,或者使他不再往深一層次 搜索,要不,我們的遞歸就會因計算機存儲容量的限制而被迫溢出,切記,切記。
我們把遞歸思想運用到上面的迷宮中,記老鼠現在所在的位置是(x,y),那它現在有 前後左右4個方向可以走,分別是(x+1,y),(x-1,y),(x,y+1),(x,y-1),其中一個方向是它來時的路,我們先不 考慮,我們就分別嘗試其他三個方向,如果某個方向是路而不是牆的話,老鼠就向那個方向邁出一步。在新的 位置上,我們又可以重復前面的步驟。老鼠走到了死胡同又是怎麼回事?就是除了來時的路,其他3個方向都是 牆,這時這條路就走到了盡頭,無法再向深一層發展,我們就應該沿來時的路回去,嘗試另外的方向。
例:八皇後問題:在標准國際象棋的棋盤上(8*8格)准備放置8隻皇後,我們知 道,國際象棋中皇後的威力是最大的,她既可以橫走豎走,還可以斜著走,遇到擋在她前進路線上的敵人,她 就可以吃掉對手。要求在棋盤上安放8隻皇後,使她們彼此互相都不能吃到對方,求皇後的放法。
這是一道很經典的題目了,我們先要明確一下思路,如何運用深度優先搜索法,完 成這道題目。我們先建立一個8*8格的棋盤,在棋盤的第一行的任意位置安放一隻皇後。緊接著,我們就來放 第二行,第二行的安放就要受一些限制了,因為與第一行的皇後在同一豎行或同一對角線的位置上是不能安放 皇後的,接下來是第三行,……,或許我們會遇到這種情況,在擺到某一行的時候,無論皇後擺放在什麼位 置,她都會被其他行的皇後吃掉,這說明什麼呢?這說明,我們前面的擺放是失敗的,也就是說,按照前面 的皇後的擺放方法,我們不可能得到正確的解。那這時怎麼辦?改啊,我們回到上一行,把原先我們擺好的 皇後換另外一個位置,接著再回過頭擺這一行,如果這樣還不行或者上一行的皇後只有一個位置可放,那怎 么辦?我們回到上一行的上一行,這和老鼠碰了壁就回頭是一個意思。就這樣的不斷的嘗試
『玖』 數據結構與演算法的交叉路口題,有點小疑問,求解。
右圖中的邊代表的是他們在左圖不沖突是吧。
正是因為AC會與BD發生沖突,所以他們才不直接相連呀。
希望能幫到你。
『拾』 用圖論做一個求迷宮最短路徑的演算法
01.#include <stdio.h>
02.#define MAXN 10
03.int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};
04.char name[] = {'U', 'D', 'L', 'R'};
05.int q[MAXN * MAXN]; //隊列,保存當前結點編號
06.int vis[MAXN][MAXN], nMap[MAXN][MAXN];
07.int m, n; //行、列數
08.int dir[MAXN * MAXN];
09.int fa[MAXN][MAXN], dis[MAXN][MAXN], last_dir[MAXN][MAXN];
10.void funcInit();
11.void bfs(int x, int y);
12.void funcInput();
13.void print_path(int x, int y);
14.int main()
15.{
16. funcInput();
17. funcInit();
18. bfs(0, 0);
19. print_path(m - 1, n - 1);
20. return 0;
21.}
22.void funcInit()
23.{
24. int i, j;
25. for (i = 0; i != m; ++i)
26. {
27. for (j = 0; j != n; ++j)
28. {
29. vis[i][j] = 0;
30. dis[i][j] = 0;
31. }
32. }
33.}
34.void funcInput()
35.{
36. int i, j;
37. scanf("%d %d", &m, &n);
38. for (i = 0; i != m; ++i)
39. {
40. for (j = 0; j != n; ++j)
41. {
42. scanf("%d", &nMap[i][j]);
43. }
44. }
45.}
46.void bfs(int x, int y)
47.{
48. int front = 0, rear = 0;
49. int d, u; //方向標記、結點編號
50.
51. u = x * m + y;
52. vis[x][y] = 1;
53. fa[x][y] = u;
54. q[rear++] = u; //將當前結點編好放入隊列
55.
56. while (front != rear)
57. {
58. u = q[front++];
59. x = u / m; y = u % m;
60. for (d = 0; d != 4; ++d)
61. {
62. int nx = x + dx[d], ny = y + dy[d];
63. if (nx >= 0 && nx < m && ny >= 0 && ny < n && !vis[nx][ny] && !nMap[nx][ny])
64. {
65. int v = nx * m + ny;
66. q[rear++] = v;
67. vis[nx][ny] = 1;
68. fa[nx][ny] = u;
69. dis[nx][ny] = dis[x][y] + 1; //記錄路徑長度
70. last_dir[nx][ny] = d; //記錄移動方向標記
71. }
72. }
73. }
74.}
75.void print_path(int x, int y)
76.{
77. int c = 0;
78.
79. while (1)
80. {
81. int fx = fa[x][y] / m;
82. int fy = fa[x][y] % m;
83. if (fx == x && fy == y) break;
84. dir[c++] = last_dir[x][y];
85. x = fx; y = fy;
86. }
87. while (c--)
88. {
89. putchar(name[dir[c]]);
90. putchar('/n');
91. }
92. printf("最短路徑長度為:%d/n", dis[m-1][n-1]);
93.}