DFS系列 POJ 自認為的講解

2022-03-01 02:47:16 字數 2539 閱讀 6409

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

#define inf 0x3f3f3f3f

#define n 1010

int d[n];

int a[n];

int n,m;

int flag;

void dfs(int num,int sum,int v)

printf("\n");

}if(sum>n)

return;

for(int i=v;i1,sum+a[i],i+1);

while(a[i]==a[i+1]&&i1) //判重

i++;

}}int main()

return

0;}

d - 迷宮問題 poj3984

題意:中文…

思路:

這道題推薦bfs+手寫佇列(這是很重要的)+路徑輸出,路徑輸出怎麼講解呢?

(某些非正規定義的詞語,是本菜雞自己定義的)

可以自己模擬一下,在乙個佇列裡,我們用當前元素的pre記錄上面那個元素在佇列裡的節點。最開始我們知道是左上角,所以就初始化他的pre值為-1,最後到了終點,就遞迴輸出。

這裡用手寫佇列不僅跑的飛快而且非常省時間。可以感受一下。

那麼我們為什麼要用stl的queue呢?知道了,請告訴我!謝謝!(學長說用stl簡單方便)

#include

#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

#define inf 0x3f3f3f3f

#define n 1010

struct asd;

asd q[25*10];

int head,tail;

int bmap[6][6];

bool vis[6][6];

int dx[4]=;

int dy[4]=;

void shuchu(int

x) else

}void bfs()

for(int i=0;i<4;i++)

head++;

}}int main()

bfs();

printf("(4, 4)\n");

return

0;}

e – sticks poj1011

題意:給你一堆棒子,這些棒子是你從一堆一樣的棒子折斷而來的,現在你忘記了是從那一堆一樣的棒子的長度,讓你寫乙個程式,求最短的長度

思路:

講道理這題的思路,好難講。

dfs也是非常混亂,剪枝也是.。

與其說是找不到這種所謂的強有力的剪枝,不如說是自己思路不夠全面。

其實剪枝就是,盡可能地少去執行不必要的相同條件的路。

好吧,還是來談談這道題的體會。

我們可以發現因為all parts became at most 50 units long,而且there are at most 64 sticks,那麼原始的長度最長也就是320,那麼我們就有理由可以嘗試列舉長度,然後去判斷是否是最小的長度。

我們可以進行排序,從而大大減少遞迴次數;(倒序)

為什麼是倒序,因為棒子越長的話越不靈活;所以我們是有依據採用倒序的

那麼出現乙個剪枝:這個滿足的長度l,一定滿足棒子的總和sum%l==0這個條件。

而且我們還可以想到以判除重複的條件剪枝,即在此刻沒有條件的話,就沒必要再去對這個相同的棒子去dfs。

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

#define inf 0x3f3f3f3f

#define n 70

int len[n];

int n;

int flag,k;

bool vis[n];

void dfs(int v,int sum,int num)

else

dfs(0,0,num);

return;

}if(sum==0)

for(int i=v; iif(sum+len[i]<=k&&!vis[i])

}}bool cmp(int a,int b)

int main()}}

}return

0;}

自認為Clion的優點

配置好clion就開學了還沒怎麼來得及玩,以乙個萌新的角度來寫一篇部落格來記錄我感覺clion相比於dev的優點或者我自己覺得很好的地方 目的?純屬瞎玩。1.除了更換主題外可以改變整個介面,有暗色比較護眼,在夜深人靜黑黑的臥室裡看著並不刺眼。2.雖然只能在cmake上執行不能單獨執行某個檔案不是特別...

說說你懂些什麼自認為很牛逼的道理

評程式人生最有學問的人 說說你懂些什麼自認為很牛的道理?讓大夥學習一下!jcc0128 2004 8 6 09 12 09 我先轉乙個,你們只能自己寫!try to learn something about everything and everything about something.tho...

羅列一些自認為比較有用的前端東西

一 highcharts外掛程式。主要用作製表,對於按時間統計資料非常有效,並且具有美觀的外表,簡單易於修改 需要英文基礎 我認為非常值得推崇。二 angularjs外掛程式。三 seajs外掛程式。我大概了解過,沒有去專門去研究過,大家可以去嘗試應用,它口碑比較不錯。四 父文字編輯器。裡面有幾款編...