時間限制: 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...