upc第五場 問題 C 洗牌

2021-10-10 17:34:11 字數 833 閱讀 2559

時間限制: 1 sec 記憶體限制: 128 mb

題目描述

小明把 n (n 為偶數)張牌按編號順序 1, 2, 3, …, n 排成一堆,然後開始洗牌。一次洗牌的過程如下:

對於一堆牌編號為 a1, a2, …, an,首先將牌分成均勻的兩堆:

a1, a2, …, am和am+1, am+2, …, an (其中m=n/2)

然後按順序交叉插入:

a1,am+1,a2,am+2,…,am,an

洗牌過程總共重複了 k 次,請你程式設計幫助小明模擬洗牌的過程。

例如 n = 6,初始時牌堆中牌的編號為 1, 2, 3, 4, 5, 6。

首次洗牌時,會將牌分成 1, 2, 3 和 4, 5, 6 兩堆,交叉插入後的結果為 1, 4, 2, 5, 3, 6。

再次洗牌,會將牌分成 1, 4, 2 和 5, 3, 6 兩堆。交叉插入後得到 1, 5, 4, 3, 2, 6。

輸入正整數 n (牌的數量), k (洗牌的次數), i (牌的位置)。1 ≤ n, k ≤ 1,000,1 ≤ i ≤ n, 保證 n 是偶數。

輸出n 張牌洗牌 k 次後,牌堆中第 i 張牌的編號。

樣例輸入 copy

6 2 5

樣例輸出 copy

2思路:就按照題意來沒啥的

#include

intmain()

for(i=

0;i) a[i]

=b[i];}

printf

("%d"

,b[m-1]

);return0;

}

upc第五場問題 F 素數分解

時間限制 1 sec 記憶體限制 128 mb 題目描述 素數,又稱質數,是指除 1 和其自身之外,沒有其他約數的正整數。例如 2 3 5 13 都是合 數,而 4 9 12 18 則不是。雖然素數不能分解成除 1 和其自身之外整數的乘積,但卻可以分解成更多素數的和。你需要程式設計 求出乙個正整數最...

暑期個人賽 第五場 C

時間限制 1000 ms 記憶體限制 65536 kb 給定乙個字串,求它的乙個重排,使得沒有兩個相鄰字元相同。第一行乙個整數t,表示組數 t 10 接下來的t行,每行乙個字串s,s中只包含小寫字母,s的長度不大於1e5.若符合條件的重排存在,輸出字典序最小的乙個。若不存在,輸出 1。2 aabbc...

13 多校第五場

1009 題目鏈結 題目大意 求乙個數有多少種不同的劃分方式 參考 講的很詳細,重點就是乙個公式 include include include include include includeusing namespace std define mod 1000000007 long long in...