noi 1805 碎紙機 搜尋

2021-07-22 03:24:52 字數 674 閱讀 2626

演算法暴力搜尋,dfs;

注意 有些情況下可以直接判斷:

1.把要「剪碎」的數全都拆成一位數,此時和最小,如果這種情況下和都比目標數大,說明沒有成立的情況,輸出「error」;

2.要「剪碎」的數本身比目標數還小(或相等),那麼最優的情況就是不進行任何處理,直接輸出兩遍原數。

**實現

#include#include#include#include#define inf 210000000;

using namespace std;

int a[7]=;

int num=0,numm=0,x,y,mx=0,cnt;

int tmp[10],b[10]; //tmp為臨時陣列,存當前切出來的數;b存最優解;

bool f=0;

void dfs(int y,int cnt,int ans) //要處理的部分;要處理的部分的位數;已處理的部分的和; }

for (int i=1;i<=cnt;i++) //列舉切割位數; }

int main()

ans+=t;

if (ans>x) //特判1;

cnt++;

dfs(y,cnt,0); //搜尋;

if (f) //有多個最優解;

{ cout<<"rejected"<

noi1805 碎紙機 搜尋

題目分析 搜尋,從當前節點出發,擴充套件出兩種狀態,就是和下乙個數組合與否,超過了就剪枝,記錄狀態.並判重.先用了類似排列的做法,寫了一上午,9個點過了6個,寫的有的麻煩,懶得再改了.然後參考了別人的 結果自己處理邊界的出錯,導致最後乙個數是0的時候出錯,然後花了不少時間才找出來.include i...

嫦娥 有望18 05發射

10月24 道 嫦娥一號 衛星從公升空到環月飛行,北京航天飛行控制中心將全過程實施統一排程 指揮和控制。昨天,本報記者獨家專訪了飛控中心總 工程師 嫦娥一號繞月探測飛行任務北京航天飛控中心技術組組長王也雋。他透露,嫦娥一號 公升空後大約400秒,地面將接收到其從太空傳回的訊號。起飛前半小時授權發射 ...

cogs1805 飛揚的小鳥 dp

題意 一堆管子,問怎麼用最少點選次數穿出去。就是個裸揹包啊 優化都沒有 另外這份 在 uoj 上被 hack 了,有沒有某位 dalao 幫忙找找問題 1 include2 include3 include4 include5 using namespace std 6const int maxn ...