洛谷 P5318 深基18 例3 查詢文獻

2021-10-08 10:15:12 字數 922 閱讀 6305

dfs和bfs的入門學習題目

使用set儲存每個點可達的邊,自動對每個點可達的點進行排序,減少後續遍歷sort的耗時。

使用遞迴來進行dfs,使用佇列queue來進行bfs

#include #include #include #include #include #include #include using namespace std;

inline int read()//如果輸入

while (ch >= '0'&&ch <= '9') s = s * 10 + ch - '0', ch = getchar();//輸入數字並統計

return s*w;//輸出結果

}queueqlist;

bool bisuse[100005];

setsetnode[100005];

void dfs(int i)

}void bfs(int i)

} qlist.pop();

} if (bisuse[i])return;

printf("%d ", i);

bisuse[i] = true;

int isize = setnode[i].size();

set::iterator it = setnode[i].begin();

for (; it != setnode[i].end(); it++) }

int main()

memset(bisuse, false, sizeof(bisuse));

dfs(1);

printf("\n");

memset(bisuse, false, sizeof(bisuse));

bfs(1);

return 0;

}

洛谷 P5727 深基5 例3 冰雹猜想

題目描述 給出乙個正整數 n n 100 然後對這個數字一直進行下面的操作 如果這個數字是奇數,那麼將其乘 3 再加 1,否則除以 2。經過若干次迴圈後,最終都會回到 1。經過驗證很大的數字 7 10 11 都可以按照這樣的方式比變成 1,所以被稱為 冰雹猜想 例如當 n 是 20,變化的過程是 2...

洛谷P2249 深基13 例1 查詢 二分

題目鏈結 是個好題目,和平時的二分不同的是,這個需要找到lower bound 的結果。那麼就二分到只有乙個數的時候再判斷,否則x a mid 就搜左邊,x a mid 就搜右邊,就可以實現lower bound 的效果。如下,仔細品味 include include include include...

洛谷 P5719 深基4 例3 分類平均

題目描述 給定n n 10000 和k k 100 將從 1 到 n 之間的所有正整數可以分為兩類 a 類數可以被 k 整除 也就是說是 k 的倍數 而 b 類數不能。請輸出這兩類數的平均數,精確到小數點後 1 位,用空格隔開。資料保證兩類數的個數都不會是 0。輸入格式 無輸出格式 無輸入輸出樣例 ...