題目描述
洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。 現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張(上半堆),右手拿著第n+1張到第2n張(下半堆)。接著就開始洗牌的過程,先放下右手的最後一張牌,再放下左手的最後一張牌,接著放下右手的倒數第二張牌,再放下左手的倒數第二張牌,直到最後放下左手的第一張牌。接著把牌合併起來就可以了。 例如有6張牌,最開始牌的序列是1,2,3,4,5,6。首先分成兩組,左手拿著1,2,3;右手拿著4,5,6。在洗牌過程中按順序放下了6,3,5,2,4,1。把這六張牌再次合成一組牌之後,我們按照從上往下的順序看這組牌,就變成了序列1,4,2,5,3,6。 現在給出乙個原始牌組,請輸出這副牌洗牌k次之後從上往下的序列。
輸入描述:
第一行乙個數t(t ≤ 100),表示資料組數。對於每組資料,第一行兩個數n,k(1 ≤ n,k ≤ 100),接下來一行有2n個數a1,a2,…,a2n(1 ≤ ai ≤ 1000000000)。表示原始牌組從上到下的序列。
輸出描述:
對於每組資料,輸出一行,最終的序列。數字之間用空格隔開,不要在行末輸出多餘的空格。
示例1
輸入
33 112
3456
3 2123
4562 211
11輸出1 4 2 5 3 6
1 5 4 3 2 6
1 1 1 1
解題思路:
**示例:
#include
#include
using
namespace std;
intmain()
// 洗k次牌
while
(k--)}
for(
int i =
0; i < num -1;
++i)
cout << a[num -1]
<< endl;
}return0;
}
每日一題 81 左右最值最大差 貪心
給定乙個長度為n n 1 的整型陣列a,可以將a劃分成左右兩個部分,左部分a 0 k 右部分a k 1 n 1 k可以取值的範圍是 0,n 2 求這麼多劃分方案中,左部分中的最大值減去右部分最大值的絕對值,最大是多少?給定整數陣列a和陣列的大小n,請返回題目所求的答案。測試樣例 2,7,3,1,1 ...
每日一題 1
題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...
每日一題2018 3 21
leetcode 2 模擬十進位制運算考察單鏈表基本操作。題無難點,個人基礎需要提高。definition for singly linked list.struct listnode class solution while p while q if shi val s next null ret...