牛客練習賽45 C Buy Fruits

2021-09-20 21:11:31 字數 1409 閱讀 3969

在blueland上有 n n個水果店,它們的編號依次為 0,1,2...n−1 0,1,2...n−1。奇妙的是,每個水果店都只賣一種水果,且這些水果店賣的水果種類都各不相同。

在每個水果店有乙個傳送門,且這些傳送門也有各自的編號,其中 i i號水果店的傳送門編號為 ai ai,每個傳送門的編號也各不相同,且是 [0,n−1] [0,n−1]中的乙個整數。簡單的說, a0a1a2...an−1 a0a1a2...an−10∼n−1 0∼n−1的乙個排列

lililalala初始位於 0 0號水果店,現在他想買到全部的 n n種水果,但是他並不認識路,所以只能通過傳送門往來於水果店並通過固定的流程買水果:

當他到達 i i號水果店時,如果之前沒有到過這個水果店,那麼lililalala會買下這種水果並且通過這個水果店的傳送門傳送到 (i+ai)modn (i+ai)modn號水果店;

如果之前已經到過這個水果店,那麼他就立即停止買水果的流程。

請輸出一種使得lililalala可以買到全部 n n種水果的一種傳送門編號序列,或者判定不存在這樣的序列。

僅一行乙個整數 n(1≤n≤100000) n(1≤n≤100000)。

如果存在符合題目要求的序列:

輸出一行 n n個整數--符合題目要求的序列,如果有多個序列滿足要求,輸出任意乙個即可。

輸出需要保證:

∀i∈[0,n−1],ai∈[0,n−1]∀i∈[0,n−1],ai∈[0,n−1]

∀i,j∈[0,n−1],滿足ai≠aj如果i≠j∀i,j∈[0,n−1],滿足ai≠aj如果i≠j

如果不存在符合題目要求的序列,輸出 −1 −1。

示例1複製

8
複製

6 3 7 2 0 5 1 4
lililalala經過水果店的順序是:

0→6→7→3→5→2→1→4 0→6→7→3→5→2→1→4

答案可能不止一種。

示例2複製

10
複製

8 4 9 1 3 0 6 2 5 7
lililalala經過水果店的順序是:

0→8→3→4→7→9→6→2→1→5 0→8→3→4→7→9→6→2→1→5

答案可能不止一種。

分析:

牛客練習賽45

a qaq dp i 0 表示前i個字元可以組成的 q dp i 1 表示前i個字元可以組成的 qa dp i 2 表示前i個字元可以組成的 qaq 掃一遍即可。includeusing namespace std define ll long long const int maxn 1e5 10 ...

牛客練習賽9

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...

牛客練習賽15

時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...