日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[蓝桥杯][2017年第八届真题]拉马车(String)

發布時間:2023/12/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [蓝桥杯][2017年第八届真题]拉马车(String) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述
小的時候,你玩過紙牌游戲嗎?
有一種叫做“拉馬車”的游戲,規則很簡單,卻很吸引小朋友。

其規則簡述如下:
假設參加游戲的小朋友是A和B,游戲開始的時候,他們得到的隨機的紙牌序列如下:
A方:[K, 8, X, K, A, 2, A, 9, 5, A]
B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]

其中的X表示“10”,我們忽略了紙牌的花色。

從A方開始,A、B雙方輪流出牌。

當輪到某一方出牌時,他從自己的紙牌隊列的頭部拿走一張,放到桌上,并且壓在最上面一張紙牌上(如果有的話)。

此例中,游戲過程:
A出K,B出2,A出8,B出7,A出X,此時桌上的序列為:

K,2,8,7,X

當輪到B出牌時,他的牌K與桌上的紙牌序列中的K相同,則把包括K在內的以及兩個K之間的紙牌都贏回來,放入自己牌的隊尾。注意:為了操作方便,放入牌的順序是與桌上的順序相反的。
此時,A、B雙方的手里牌為:
A方:[K, A, 2, A, 9, 5, A]
B方:[5, J, 5, Q, 6, K, 4, K, X, 7, 8, 2, K]

贏牌的一方繼續出牌。也就是B接著出5,A出K,B出J,A出A,B出5,又贏牌了。
5,K,J,A,5
此時雙方手里牌:
A方:[2, A, 9, 5, A]
B方:[Q, 6, K, 4, K, X, 7, 8, 2, K, 5, A, J, K, 5]

注意:更多的時候贏牌的一方并不能把桌上的牌都贏走,而是拿走相同牌點及其中間的部分。但無論如何,都是贏牌的一方繼續出牌,有的時候剛一出牌又贏了,也是允許的。

當某一方出掉手里最后一張牌,但無法從桌面上贏取牌時,游戲立即結束。

對于本例的初始手牌情況下,最后A會輸掉,而B最后的手里牌為:

9K2A62KAX58K57KJ5

本題的任務就是已知雙方初始牌序,計算游戲結束時,贏的一方手里的牌序。當游戲無法結束時,輸出-1。
輸入
輸入為2行,2個串,分別表示A、B雙方初始手里的牌序列。

我們約定,輸入的串的長度不超過30

輸出
輸出為1行,1個串,表示A先出牌,最后贏的一方手里的牌序。
樣例輸入
96J5A898QA
6278A7Q973
樣例輸出
2J9A7QA6Q6889977
思路:這個題目就是一個大模擬,主要用到的是stl中的string函數。-1的情況,我沒有找規律,直接判斷如果在循環100000次之后還沒有分出勝負,就直接輸出-1.因為數據量不大,所以完全可以(歪招)。
代碼如下:

#include<bits/stdc++.h> #define ll long long using namespace std;string s1,s2;int main() {cin>>s1>>s2;string t="";int flag=1;int cnt=0;while(s1.length()&&s2.length()&&cnt<1e5){int mk=0;string rr;if(flag) rr=s1.substr(0,1),s1.erase(s1.begin());else rr=s2.substr(0,1),s2.erase(s2.begin());if(t.find(rr)==-1) t+=rr;else{int pos=t.find(rr);string tt=t.substr(pos);t.erase(t.begin()+pos,t.end());tt+=rr;reverse(tt.begin(),tt.end());if(flag) s1+=tt;else s2+=tt;mk=1;}if(!mk) flag^=1;cnt++;}if(s1.length()) cout<<s1<<endl;else if(s2.length()) cout<<s2<<endl;else cout<<-1<<endl;return 0; }

努力加油a啊,(o)/~

總結

以上是生活随笔為你收集整理的[蓝桥杯][2017年第八届真题]拉马车(String)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。