結題報告UVA1374 錯誤 12

2021-08-31 21:39:49 字數 995 閱讀 2705

uva1374 題意:輸入正整數n(1≤n≤1000),問最少需要幾次乘除法可以從x得到x^n?例如,x^31需要6次 。 計算過程中x的指數應當總是正整數(如x^-3=x/x^4是不允許的)。

我對這個題目理解得不正確,而且是多次不正確。

通過p211的圖,我更好明白了每層擴充套件這能有1個,不能分叉都兼得。對深搜也有更好地認識了。實際上,小於logn的層都是找不到的。

這是我錯誤的**:

#include#include#include#include#includeusing namespace std;

#define imax 100

typedef structnode;

node f[5000];

int main()

{ void compute(int i,int j,int & kk_n,int k);

node tofind(int n,int kk_n);

int n=1;

while(scanf("%d",&n)&&n)

{ int k=0,kk;

node pa;

pa.x=1;

pa.v=0;

f[0]=(pa);

int k_n=1,n_k_n;

int last=1;

while(true)

{ n_k_n=k_n;

for(int i=0;i=i&&j0)

{ if(!last)

{cout<0)

{ for(int s=oldkk_n-1;s0)

{ for(int s=oldkk_n-1;s0)

{ for(int s=oldkk_n-1;k0)

{ for(int s=oldkk_n-1;s這個**存在問題,比如說27 需要先計算出9,然後相乘兩次就行,計算9需要4次,所以共有6次就夠了。但是我的這個程式無法得到正確答案,沒有更好處理好node.v的計算方法。

UVA 1374 迭代加深搜尋

所謂迭代加深搜尋實質 限制每一次所搜的最大深度,然後進行dfs深搜,並且我們可以利用節點深度的性質來進行剪枝來優化演算法,這個題中 由於深度固定,我們在當前層數上指數是a,最大深度為maxd,當前深度為cur,那麼我們接下來幾層向下深搜最大只會到達a maxd cur 以你為向下一層最大就是指數的二...

專案結題報告

專案結題報告 python基礎和相關庫的學習 一 python基礎與科學計算庫numpy 1.python語言基礎 2.python資料結構 列表,字典,元組 3.科學計算庫numpy基礎 4.numpy陣列操作 5.numpy矩陣基本操作 6.numpy矩陣初始化與建立 7.numpy排序與索引 ...

1179結題報告

我對已經非常失望了。也不能和文字分開了。不知道是出了什麼毛病。挺討厭亂七八糟!這個題是典型的dp,由低往上遞推。公式很簡單。需要注意乙個地方就是負負得正。不僅需要儲存一段區間的最大值,也需要儲存最小值。關於這一點我也是看了discuss後才明白的。至於為什麼要這樣,想想也能想明白。就不多說了。共參考...