題目分析:
搜尋,從當前節點出發,擴充套件出兩種狀態,就是和下乙個數組合與否, 超過了就剪枝,記錄狀態.,並判重.
先用了類似排列的做法,寫了一上午,9個點過了6個,寫的有的麻煩,懶得再改了.
然後參考了別人的**,結果自己處理邊界的出錯,導致最後乙個數是0的時候出錯,然後花了不少時間才找出來.
#include
#include
#include
using namespace std;
int step[8],ansstep[8],id;//step,儲存分割的陣列,ansstep,儲存答案
int maxn,cs,re,nac,lac;//re,基數,nac等待分割的數,lac待分割數的長度 ,cs重覆記錄標誌
char ac[8];
int num[8];//待分割的陣列分成的單個數
void dfs(int sum,int cf ,int p,int depth )
else if(sums==maxn)cs++;
}return;
} step[depth]=cf;
dfs(sum+cf,num[p+1],p+1,depth+1);
if(p<=lac)dfs(sum,cf*10+num[p+1],p+1,depth);
}int main( )
if(re==nac)
maxn=0;
cs=0;
id=0;
dfs(0,num[1],1,1);
if(maxn==0) printf("error\n");
else if(cs>0) printf("rejected\n");
else
else
if(sum==maxn)cs++;
}return;}
step[depth]=cf;
dfs(sum+cf,num[p+1
],p+1
,depth+1
);dfs
(sum,cf*
10+num[p+1
],p+1
,depth);
}
noi 1805 碎紙機 搜尋
演算法暴力搜尋,dfs 注意 有些情況下可以直接判斷 1.把要 剪碎 的數全都拆成一位數,此時和最小,如果這種情況下和都比目標數大,說明沒有成立的情況,輸出 error 2.要 剪碎 的數本身比目標數還小 或相等 那麼最優的情況就是不進行任何處理,直接輸出兩遍原數。實現 include includ...
嫦娥 有望18 05發射
10月24 道 嫦娥一號 衛星從公升空到環月飛行,北京航天飛行控制中心將全過程實施統一排程 指揮和控制。昨天,本報記者獨家專訪了飛控中心總 工程師 嫦娥一號繞月探測飛行任務北京航天飛控中心技術組組長王也雋。他透露,嫦娥一號 公升空後大約400秒,地面將接收到其從太空傳回的訊號。起飛前半小時授權發射 ...
cogs1805 飛揚的小鳥 dp
題意 一堆管子,問怎麼用最少點選次數穿出去。就是個裸揹包啊 優化都沒有 另外這份 在 uoj 上被 hack 了,有沒有某位 dalao 幫忙找找問題 1 include2 include3 include4 include5 using namespace std 6const int maxn ...