當前位置:首頁 » 操作系統 » 木棍處理演算法

木棍處理演算法

發布時間: 2022-11-14 19:56:59

1. 把一根木棒鋸成6段要用10分鍾,如果要鋸成100段,需要多少分鍾

6段需要鋸5次,鋸一次需要10除5,就是兩分鍾,鋸成100段需99次,99乘以兩分鍾(鋸一次的時間)等於198分鍾,回答完畢。別忘了給分謝謝。

2. C++木材加工問題演算法,已知不同長度的N根圓木,現在讓你截成K根長度相等的圓木棍,問能截得最大長度

//這樣可以實現。輸入數值我就不寫了。

#include<iostream>
usingnamespacestd;
intmain(){
intn=10,k=5;
inta[10]={1,2,3,4,5,6,7,8,9,10};
//1.inputn,k
//2.inputa[n]各長度
//3.sorta
//4.
ints,m;
boolfound=false;
for(m=n-1;m>=0;m--){
s=0;
for(intj=n-1;j>=0;j--){
s+=a[j]/a[m];
if(s==k){
found=true;
break;
}
}
if(found)break;
}
cout<<"maxlength="<<m<<endl;
return0;
}

3. 打架的時候沒在現場,打完架抱著木棍進來了怎麼算

是給抓了還是事後調查找到你了,實話實說就是了,不要自找麻煩。

4. 有7根直徑都是10cm的圓柱形木棍,想用繩子把它們捆成一捆,最短需要多長的繩子

先6個圓柱圍成一圈,計算中間的圓的半徑,要判斷能不能放置下第七個圓,若六個圓的內接圓半徑大於等於5,則能放置,否者六個圓並不是相鄰的,即相鄰圓圓心與原點的夾角大於60度。

計算的圖中的內接圓半徑恰好是5,過程略。

然後計算外接圓的半徑是15

圖中所有的圓相切。

外接圓周長是30pai

5. 楊樹木棍如何處理

有以下幾種方式:
第一種就是繼續保留讓它發芽再生樹干;
第二種是把它的根莖全部挖掘起來不讓它再次重生,把它的樹根晾曬干可以生火起到第二次作用;
第三種是懶人法在它的根部,樹葉或砍伐面進行爛根的滅草劑使其徹底消除永不再生。

6. 長8米的木棍據成4段,每鋸一次需要4分鍾,共需要12分鍾。演算法公式是什麼

長8米的木棍鋸成4段,每鋸一次需要4分鍾,共需要12分鍾。
演算法公式是,
(4-1)*4
=3*4
=12(分鍾)

7. 新砍的棗木棍怎樣處理彎曲(新砍的棗木棍怎樣處理)

1、新砍的棗木棍處理視頻。

2、新砍棗木怎麼處理。

3、新砍的棗木棍現在去皮還是等乾巴了去皮。

4、棗木棍怎麼處理。

1.新砍的棗木棍可以在已經乾燥的木材上用鐵絲捆住端頭。

2.然後再使用防裂環、組合釘板等,用機械的方法強制木材不要膨脹和收縮,這樣子就可以避免木材發生開裂,可以更好的保存起來。

8. 演算法藝術與信息學競賽中小木棍的解析

很遺憾 雖然我手邊書架正好有這么一本書 但是我發覺水平實在有限 幫不了你啊 反正我就暈了 連程序1 程序2在哪我都看不出來 實在抱歉吶~!
____________________________________以上是原文————
接下來 我細細地想了一下 我的思路是這樣的
如果本題目不是求的最小可能長度 ,而是要求一個原長度的話 就好解決了 木棍本來就由長棍折成的 總和肯定匹配 因此 我最初的想法是直接使用2路歸並演算法 兩兩相鄰的相加
最後 我發現這個思路正好相反 對照書上的意思是

先取最長的小棍 然後與最短小棍組合
將迭代傳給第二長小棍 若其與剩下小棍長度之和與第一組相等 則繼續迭代
若不相等則返回上一步迭代

這就是作者所說的深度優先搜索吧 這樣確實能夠取得最小的長棍長度
_____________________以下是對解釋的補充—————————————

本來,像這種使用隊列來存儲的演算法 怎麼說都會認為是廣度優先演算法
地球人都知道
不過 這個題目並沒有說是將每一條棍子都砍成兩段,而是折成幾段
這就意味著 僅僅進行上面的 兩輪迭代是不夠的
當第一段最長的那段從隊列出來之後 也就是在兩段的層次上不能匹配的時候
它會入棧 進行更多段的匹配
而只有在外面套上這么一層的迭代 才真正是深度優先演算法

當然了,作者給的提示是 以最短小棍為起點 用長段來匹配 而我現在是以最長棍為起點 用短棍來匹配 是有點小小的不同 但我個人認為 過程是一樣的

這個問題 真可惡 害我晚上睡不好覺 睡了下 還得爬起來

9. 把1米長的木棒用去二分之一,還剩下多少米

二分之一就是0.5了
1-0.5=0.5
所以還有0.5米
演算法就是:1-(1*1/2)=0.5米

10. 小木棍問題,要求用數據結構與演算法處理

如果只是要輸出最小裝配時間的話,不需要什麼數據結構
其實演算法很簡單:記f(n)為裝配n個木棍需要的最小裝配時間
w[p], l[p]存儲需要裝配時間的序列中的最後一個木棍的weight、length(p=0 to n)
有f(1) = 1 (w[0], l[0])即第一根木棍的參數
f(2) = 1(存在一個木棍的weight和length都小於另一個) (w[0], l[0])為質量/長度大的那個
f(2) = 2(不存在) (w[0], l[0]), (w[1], l[1])
f(n) = f(n - 1) (存在i(0<=i<f(n)),使得第n根木棍的長度和質量同時大於或小於(w[i],l[i])
若大於,則(w[i], l[i]) = 第n根木棍的長度和質量
f(n) = f(n - 1) + 1 (不存在上述情況,且此時(w[f(n)], l[f(n)])=第n根木棍的長度和質量)
此演算法可以看成是遞推吧
代碼如下
#include <iostream>
using namespace std;

int getAns(int number, int *weight, int *length)
{
int answer = 1;
int i, j;
int *w = new int [number], *l = new int [number];
bool add_one_min = true;

w[0] = weight[0], l[0] = length[0];

for (i = 1; i < number; i++)
{
add_one_min = true;
for (j = 0; j < answer && add_one_min; j++)
{
if (w[j] > weight[i] && l[j] > length[i])
add_one_min = false;

if (w[j] <= weight[i] && l[j] <= weight[j])
{
w[j] = weight[i];
l[j] = weight[j];
add_one_min = false;
}
}

if (add_one_min)
{
w[answer] = weight[i];
l[answer] = length[i];
answer++;
}
}

delete []w;
delete []l;
return answer;
}

int main()
{
int number, weight[5000], length[5000];
int i;

cin >> number;
for (i = 0; i < number; i++)
cin >> weight[i] >> length[i];

cout << getAns(number, weight, length);
return 0;
}

熱點內容
換編程題庫 發布:2024-05-18 18:00:58 瀏覽:561
如何使用伺服器ip直連網站 發布:2024-05-18 18:00:49 瀏覽:431
三星n7100哪個安卓版本好用 發布:2024-05-18 17:55:41 瀏覽:489
萬國覺醒採集腳本源碼 發布:2024-05-18 17:55:39 瀏覽:946
sqlserver加欄位 發布:2024-05-18 17:54:53 瀏覽:927
安卓手機如何清除應用記錄 發布:2024-05-18 17:31:37 瀏覽:639
查看存儲過程許可權 發布:2024-05-18 17:18:33 瀏覽:191
php類self 發布:2024-05-18 17:15:03 瀏覽:894
手機2b2t的伺服器地址是多少 發布:2024-05-18 17:14:56 瀏覽:188
戴爾8490哪個配置比較合理 發布:2024-05-18 17:14:51 瀏覽:168