滴滴軟開秋招筆試——算法真題
時(shí)間:2024.10
1、小A正在玩游戲,在游戲中一共有n個(gè)不同星球,星球間共有m條雙向航道,小A的任務(wù)是摧毀這些星球。若有多個(gè)星球間兩兩可達(dá),則我們稱它們展于同一個(gè)聯(lián)盟。特別的,若一個(gè)星球與其他星球都沒有航道,則也稱這個(gè)星球?yàn)橐粋€(gè)聯(lián)盟。小A將按照星球的編號(hào)從小到大依次推毀各個(gè)星球,當(dāng)一個(gè)星球被摧毀后,與之相連的航道也將相繼摧毀,現(xiàn)在小A想知道在每個(gè)星球被摧毀時(shí),還剩下多少個(gè)聯(lián)盟。不同星球間可能有多條航道,但每條航道連接的兩個(gè)星球必然不同。上述題意可以被簡(jiǎn)化為,給定n個(gè)點(diǎn),m條邊的無向圖,按照編號(hào)大小依次刪除各個(gè)節(jié)點(diǎn),請(qǐng)問在每個(gè)節(jié)點(diǎn)被刪除時(shí),還剩下多少個(gè)連通塊。保證給定圖無自環(huán),但可能有重邊。
輸入描述:第一行兩個(gè)正整數(shù)n,m,表示星球數(shù)與航道數(shù)。接下來m行,每行2個(gè)正整數(shù)u, v表示兩星球有一條航道
輸出描述:輸出一行n個(gè)正整數(shù),表示答案
示例:輸入:
5 6
1 2
2 3
3 1
4 5
5 1
2 4
輸出:1 2 1 1 0
2、小明有一個(gè)含有n個(gè)數(shù)的序列a1,a2, ...,an,對(duì)這個(gè)序列進(jìn)行Q次詢問,每次詢問的形式為l r m,表示他要找到一個(gè)非負(fù)整數(shù)k,使得0<=k<=m且al異或al+1異或...異或ar異或k最大,對(duì)于每次詢問,小明想要知道al異或al+1異或...異或ar異或k最大値。
輸入描述:第一行輸入兩個(gè)正整數(shù)n,Q,分別表示序列中數(shù)的個(gè)數(shù)以及詢向次數(shù)
第二行輸入n個(gè)非負(fù)整數(shù)a1,a2, ...,an
第三行輸入Q個(gè)正整數(shù)l1,l2, ...,lQ,表示每次詢問對(duì)應(yīng)的左端點(diǎn)
第四行輸入Q個(gè)正整數(shù)r1,r2, ...,rQ,表示每次詢問對(duì)應(yīng)的右端點(diǎn)
第五行輸入Q個(gè)非負(fù)整數(shù)m1,m2, ...,mQ,表示每次詢問對(duì)應(yīng)的k能選擇的最大值
輸出描述:為了避免較大的輸出量,你需要將所有詢問得到的答案全部異或起來再輸出,也就是僅輸出一個(gè)非負(fù)整數(shù)
示例:輸入:
5 6
2 0 3 6 5
2 1 3
4 3 5
3 1 0
輸出:6
1、小A正在玩游戲,在游戲中一共有n個(gè)不同星球,星球間共有m條雙向航道,小A的任務(wù)是摧毀這些星球。若有多個(gè)星球間兩兩可達(dá),則我們稱它們展于同一個(gè)聯(lián)盟。特別的,若一個(gè)星球與其他星球都沒有航道,則也稱這個(gè)星球?yàn)橐粋€(gè)聯(lián)盟。小A將按照星球的編號(hào)從小到大依次推毀各個(gè)星球,當(dāng)一個(gè)星球被摧毀后,與之相連的航道也將相繼摧毀,現(xiàn)在小A想知道在每個(gè)星球被摧毀時(shí),還剩下多少個(gè)聯(lián)盟。不同星球間可能有多條航道,但每條航道連接的兩個(gè)星球必然不同。上述題意可以被簡(jiǎn)化為,給定n個(gè)點(diǎn),m條邊的無向圖,按照編號(hào)大小依次刪除各個(gè)節(jié)點(diǎn),請(qǐng)問在每個(gè)節(jié)點(diǎn)被刪除時(shí),還剩下多少個(gè)連通塊。保證給定圖無自環(huán),但可能有重邊。
輸入描述:第一行兩個(gè)正整數(shù)n,m,表示星球數(shù)與航道數(shù)。接下來m行,每行2個(gè)正整數(shù)u, v表示兩星球有一條航道
輸出描述:輸出一行n個(gè)正整數(shù),表示答案
示例:輸入:
5 6
1 2
2 3
3 1
4 5
5 1
2 4
輸出:1 2 1 1 0
2、小明有一個(gè)含有n個(gè)數(shù)的序列a1,a2, ...,an,對(duì)這個(gè)序列進(jìn)行Q次詢問,每次詢問的形式為l r m,表示他要找到一個(gè)非負(fù)整數(shù)k,使得0<=k<=m且al異或al+1異或...異或ar異或k最大,對(duì)于每次詢問,小明想要知道al異或al+1異或...異或ar異或k最大値。
輸入描述:第一行輸入兩個(gè)正整數(shù)n,Q,分別表示序列中數(shù)的個(gè)數(shù)以及詢向次數(shù)
第二行輸入n個(gè)非負(fù)整數(shù)a1,a2, ...,an
第三行輸入Q個(gè)正整數(shù)l1,l2, ...,lQ,表示每次詢問對(duì)應(yīng)的左端點(diǎn)
第四行輸入Q個(gè)正整數(shù)r1,r2, ...,rQ,表示每次詢問對(duì)應(yīng)的右端點(diǎn)
第五行輸入Q個(gè)非負(fù)整數(shù)m1,m2, ...,mQ,表示每次詢問對(duì)應(yīng)的k能選擇的最大值
輸出描述:為了避免較大的輸出量,你需要將所有詢問得到的答案全部異或起來再輸出,也就是僅輸出一個(gè)非負(fù)整數(shù)
示例:輸入:
5 6
2 0 3 6 5
2 1 3
4 3 5
3 1 0
輸出:6
全部評(píng)論
相關(guān)推薦
點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享