DFS普及組常用模板簡單整理

2022-08-26 18:06:23 字數 1640 閱讀 5777

(至於我為什麼最近不寫tg相關只寫最基礎的pj的內容,請戳這裡了解)

#includeusing namespace std;

int n, m;//n:有幾個數 m:要幾個

bool used[ ];//是否用過

int ans[ ];//答案

void dfs(int u)

for (int i = 開始的地方; i <= n; i++)//從上乙個數開始依次增加,列舉每一種情況

if (used[i] == 0)

return ;//退出

}int main()

#includeusing namespace std;

int n;//有幾個數

bool used[10];//是否用過

int ans[10];//答案

void dfs(int u)

for (int i = 1; i <= n; i++)//列舉每一種情況

if (used[i] == 0)//判斷是否用過

return ;//退出

}int main()

#includeusing namespace std;

int n, m;//n:有幾個數 m:要幾個

int a[30];//數字

int ans = 0;//方案個數

bool prime(int d) //素數檢測

void dfs(int u, int opt, int sum)

for (int i = opt + 1; i <= n; i++)//從上乙個下標開始依次增加,列舉每一種情況

dfs(u + 1, i, sum + a[i]);//下乙個數字

return ;//退出

}int main()

#includeusing namespace std;

int n, m;//n:有幾個數 m:要幾個

bool used[10];//是否用過

int ans[10];//答案

void dfs(int u)

for (int i = 1; i <= n; i++)//列舉每一種情況

if (used[i] == 0)//判斷是否用過

return ;//退出

}int main()

#includeusing namespace std;

int n, m;//n:有幾個數 m:要幾個

bool used[30];//是否用過

int ans[30];//答案

void dfs(int u)

for (int i = ans[u - 1] + 1; i <= n; i++)//從上乙個數開始依次增加,列舉每一種情況

if (used[i] == 0)//判斷是否用過

return ;//退出

}int main()

注:本文模板**參考於大佬筆記

(這個大佬的blog裡全部都是乾貨全部都是精品我強烈推薦!!!)

NOIP2016普及組初賽題目整理

郊遊活動 有 n 名同學參加學校組織的郊遊活動,已知學校給這 n 名同學的郊遊總經費為 a 元,與此同時第 i 位同學自己攜帶了 mi 元。為了方便郊遊,活動地點提供 b n 輛自行車供人租用,租用第 j 輛自行車的 為 cj元,每位同學可以使用自己攜帶的錢或者學校的郊遊經費,為了方便賬務管理,每位...

NOIP2010普及組初賽試題錯題整理

11 乙個字長為8位的整數的補碼是11111001,則它的原碼是 d a.00000111 b.01111001 c.11111001 d.10000111 分析 二進位制中負數才有補碼,將補碼 1再按位取反,注意第一位保留1.佇列快照是指在某一時刻佇列中的元素組成的有序序列。例如,當元素1 2 3...

NOIP2008普及組初賽難點整理

t5.完全二叉樹共有 2 n 1 2 times n 1 2 n 1 個結點,則它的葉結點數是 n 解析 有 2 n 1 2 times n 1 2 n 1 個結點的完全二叉樹,最後乙個擁有孩子結點的父結點的編號為 2n 12 n 1 lfloor frac rfloor n 1 22n 1 n 1...