第一周 搜尋和貪心

2021-10-09 19:08:10 字數 1507 閱讀 8123

e題 sticks uva - 307

深搜一直沒廣搜熟練,這個看了好多部落格才理解,題意好懂,就是給你幾根木棍

問你能否拼成相同的長度l

主要是需要剪枝(需要剪的地方真心多)

1.l必須是sum的因子

2.搜尋過程中,如果前面的木棍沒有成功,那麼後面與它相同長度的木棍可以不用討論

3.從大到小排序

4.如果乙個木棍不成功 直接回溯

#include#include#includeusing namespace std;

int n,m,ans,sum,flag,le;

int a[1010],book[1010];

bool cmp(int x,int y)

void dfs(int x,int y,int u)//x是木棍編號,y是所需長度,u是所用個數

if(flag) return ;

for(i=x; i<=n; i++)

}}int main()

sort(a+1,a+n+1,cmp);

int l=a[1];

flag=0;

ans=sum;

for(le=a[1];le<=sum/2;le++)

if(flag) break;

}printf("%d\n",ans);

}return 0;

}

h題(infinite maze)

開始不明白題意

題意是給了乙個地圖的一部分,由無數個相同的單元組成,問不走回頭路能否無限的走下去

如果是乙個走過的點且不是上一次走過的點就說明是另一張地圖,也就可以無限的走

#include#include#include#includeusing namespace std;

#define inf 99999999

struct node

;const int n=2020;

char map[n][n];

int book1[n][n],book2[n][n];

int n,m,sx,sy;

void bfs()

; queueq;

u.x=sx;

u.y=sy;

book1[u.x][u.y]=sx;

book2[u.x][u.y]=sy;

q.push(u);

while(!q.empty())

else if(book1[tx][ty]!=v.x||book2[tx][ty]!=v.y)//這個地方卡住了 寫在了if裡面,必須是沒到達過的點才可以

//如果有乙個不相同就說明是不同於上次的到達的地圖}}

}printf("no\n");

return;

}int main()

book1[i][j]=inf;

book2[i][j]=inf;}}

bfs();

return 0;

}

python第一周心得 Python第一周總結

變數 不能為系統自帶的內建函式,如def,help,sum等等 變數不能已下劃線數字來開頭,對大小寫敏感 變數後直接接數字,則被賦值為整型,如何加引號則賦值型別為字串str型別 a 1 整型 int b 2 字串 str 用print 直接輸出 a hello print a 在 使用者想要同時輸出...

第一周周記

下面是整個文章的第二部分,日常的安利 這周的話,除了整體恢復正常,週末我也購置了我的第一塊外接鍵盤,這裡的話我選擇的是國產的靜電容鍵盤niz的plum 87鍵鍵盤。今天拿到這個鍵盤第一天,整體使用了一下,尺寸配合著15寸的蘋果macbook pro可以說恰到好處,除此以外,整個鍵盤還是給我不少驚喜的...

寒假第一周

寫了這個標題,感覺有點像寫周記的味道.那就盡量堅持這個寒假裡至少每週一篇吧。這幾天學校裡真的好清靜了,實驗室和寢室都沒人了。其實說起來這周算是我們寒假的第二週了吧,14號就全部考完了,從放假的基本定義來看,那時候就算是寒假了。只不過上週這邊人還比較多,而且本科生也都沒考完,校歷上也是這週才算開始放假...