動態(tài)ip上做網(wǎng)站網(wǎng)絡(luò)軟文是什么意思
文章預(yù)覽:
- 題目
- 翻譯
- 算法
- python代碼
- oj反饋結(jié)果
題目
翻譯
shuffle是用于隨機化一副撲克牌的過程。由于標(biāo)準(zhǔn)的洗牌技術(shù)被認為是薄弱的,并且為了避免員工通過不適當(dāng)?shù)南磁婆c賭徒合作的“內(nèi)部工作”,許多賭場使用了自動洗牌機。你的任務(wù)是模擬一臺洗牌機。
機器根據(jù)給定的隨機順序洗一副54張牌,并重復(fù)給定的次數(shù)。假設(shè)一副牌的初始狀態(tài)順序如下:
S1, s2,…向,
H1, h2,…H13,
C1, c2,…、C13、
D1, d2,…D13,
j - 1, J2
其中“S”代表“黑桃”,“H”代表“紅心”,“C”代表“梅花”,“D”代表“方塊”,“J”代表“小丑”。給定的順序是[1,54]中不同整數(shù)的排列。如果第i個位置的數(shù)字是j,這意味著將牌從位置i移動到位置j。例如,假設(shè)我們只有5張牌:S3, H5, C1, D13和J2。給定一個洗牌順序{4,2,5,3,1},結(jié)果將是:J2, H5, D13, S3, C1。如果我們再次重復(fù)洗牌,結(jié)果將是:C1, H5, S3, J2, D13。
輸入規(guī)格:
每個輸入文件包含一個測試用例。對于每種情況,第一行包含一個正整數(shù)K(≤20),即重復(fù)次數(shù)。然后下一行包含給定的順序。一行中的所有數(shù)字用一個空格隔開。
輸出規(guī)范:
對于每個測試用例,在一行中打印變換結(jié)果。所有的牌都用一個空格隔開,并且行尾不能有額外的空格。
算法
解題思路很簡單,利用里一個列表將當(dāng)前需要移動的元素直接存入,最后將列表返回,重復(fù)這個操作就可以了
python代碼
def shuttle(a,pos):b=len(a)*[None]for i in range(1,55):b[pos[i]]=a[i]return bdef setf(a,fuhao):for i in range(1,14):a.append(fuhao+str(i))
def start(a):setf(a,'S')setf(a,'H')setf(a,'C')setf(a,'D')a.append('J1')a.append('J2')
def shuru():b=input().split()b.insert(0,'0')for i in range(len(b)):b[i]=int(b[i])return b;a=[0]
start(a)
repeat=int(input())
b=shuru()
for i in range(repeat):a=shuttle(a,b)
a.pop(0)
print(' '.join(a))