国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

撲克牌游戲?;E?/h1>

這篇具有很好參考價(jià)值的文章主要介紹了撲克牌游戲?;E啤OM麑Υ蠹矣兴鶐椭?。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Description
唬牌是一種撲克游戲,包含A,2,3,4,5,6,7,8,9,10,J,Q,K各四張。
有四個玩家參與這個游戲。
每一位玩家在游戲開始時(shí)都會有隨機(jī)的13張牌。

在桌子上沒有牌時(shí),玩家選擇任意一個點(diǎn)數(shù)x和一個數(shù)字y(y小于等于手中牌數(shù)且至少為一),并打出任意y張牌,并將這y張牌的背面朝上放在桌上,聲稱"這是y張x牌"。
當(dāng)桌子上有牌時(shí),玩家可以選擇兩種操作
(1)選擇一個數(shù)字z,并打出任意z張牌,聲稱"這是z張x牌",注意:x與上一位打出牌的玩家所選的點(diǎn)數(shù)相同。
(2)質(zhì)疑上一位玩家,然后他將翻轉(zhuǎn)上一位玩家打出的牌,并檢查上一位玩家的陳述是否正確。
若質(zhì)疑成功(上一位玩家的陳述與其打出的牌不符),則被質(zhì)疑者拿走桌上所有的牌。
若質(zhì)疑失敗,則質(zhì)疑者拿走桌上所有的牌。
當(dāng)一個玩家選擇質(zhì)疑,并且在某位玩家拿了桌上所有的牌之后,如果有玩家手里沒有牌,那么我們就說這個玩家贏了這場游戲。
為了簡化,這次您需要編寫一個程序來模擬游戲過程,在程序中,用1代表A,11代表J,12代表Q,13代表K

Input

有t組樣例

對于每一個樣例

首先是4行,第i行包含13個數(shù)字,第i位玩家手中的牌

然后一行包含一個整數(shù)m (2 <=m <= 20),表示游戲回合數(shù)。接下來的m行,每一行都是以下格式之一:
1. ”S x y a1 a2 ……ay“,意思是當(dāng)前的玩家出牌a1, a2,..., ay,并聲明“這些是y張x牌”。
2. “! y a1 a2…,ay”,意思是當(dāng)前的玩家選擇不質(zhì)疑,并打出y張牌a1, a2... ay,并聲明“這些是y張牌x”,其中x保持不變(仍是上次說明的x)
3. “?“,表示當(dāng)前玩家選擇提出問題。 測試保證所有操作都是合法的。在這個過程中,沒有人會贏。
Output

對于每一個樣例

輸出四行,第i位玩家在m回合后,非遞減順序牌。

每一行末尾有空格

末尾包含換行

Sample Input

1

8 12 12 9 3 10 13 11 12 4 10 2 1

2 10 13 9 9 3 12 4 6 13 3 11 13
11 1 10 5 7 4 5 6 7 7 5 6 9
4 1 11 2 1 8 8 3 2 6 5 8 7
5
S 1 2 2 3
! 1 2
! 1 1
! 2 1 1
?
Sample Output
1 1 1 1 2 2 3 4 8 9 10 10 11 12 12 12 13
3 3 4 6 9 9 10 11 12 13 13 13
4 5 5 5 6 6 7 7 7 9 10 11
2 2 3 4 5 6 7 8 8 8 11
?

?

分析,純正暴力枚舉,然后超時(shí)了,下面是超時(shí)代碼,但是結(jié)果應(yīng)該正確?

#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    int t,k,m,num=1,x,y;
    char temp;
    int temp1=0;
    int temp2;
    vector<int>p;vector<int>p1;vector<int>p2;vector<int>p3;vector<int>p4;
    scanf("%d",&t);
    while(t--){
        for(int i=0;i<13;i++){
            scanf("%d",&k);
            p1.push_back(k);
        }
        for(int i=0;i<13;i++){
            scanf("%d",&k);
            p2.push_back(k);
        }
        for(int i=0;i<13;i++){
            scanf("%d",&k);
            p3.push_back(k);
        }
        for(int i=0;i<13;i++){
            scanf("%d",&k);
            p4.push_back(k);
        }
        sort(p1.begin(),p1.end());sort(p2.begin(),p2.end());
        sort(p3.begin(),p3.end());sort(p4.begin(),p4.end());
        scanf("%d",&m);
        while(m--) {
            getchar();
           temp=getchar();
            if ((char)temp=='S'&&num%4==1) {
                scanf("%d%d", &x, &y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                    temp2 = (lower_bound(p1.begin(), p1.end(), k) - p1.begin());
                    p1.erase(p1.begin() + temp2);
                }
                num++;
            }
            else if (temp=='!'&&num % 4 == 1) {
                scanf("%d",&y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p1.begin(), p1.end(), k) - p1.begin());
                    p1.erase(p1.begin() + temp2);
                }
                num++;
            }
            else if (temp=='?'&&num % 4 == 1) {
                for (auto it = p.end() - 1; it >= p.end() - y; it--) {
                    if (*it == x) {
                        temp1++;
                    }
                }
                if (temp1 == y) {
                        for (auto it = p.begin(); it < p.end(); it++) {
                            p1.push_back(*it);
                        }
                    }
                if (temp1 != y) {
                    for (auto it = p.begin(); it < p.end(); it++){
                                p4.push_back(*it);
                    }
                }
                sort(p1.begin(),p1.end());sort(p2.begin(),p2.end());
                sort(p3.begin(),p3.end());sort(p4.begin(),p4.end());
                p.clear();
                num++;
                temp1=0;
            }
            else if (temp=='s'&&num%4==2) {
                scanf("%d%d", &x, &y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p2.begin(), p2.end(), k) - p2.begin());
                    p2.erase(p2.begin() + temp2);
                }
                num++;
            }
            else if (temp=='!'&&num % 4 == 2) {
                scanf("%d",&y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p2.begin(), p2.end(), k) - p2.begin());
                    p2.erase(p2.begin() + temp2);
                }
                num++;
            }
            else if (temp=='?'&&num % 4 == 2) {
                for (auto it = p.end() - 1; it >= p.end() - y; it--) {
                    if (*it == x) {
                        temp1++;
                    }
                }
                if (temp1 == y) {
                    for (auto it = p.begin(); it < p.end(); it++) {
                        p2.push_back(*it);
                    }
                }
                if (temp1 != y) {
                    for (auto it = p.begin(); it < p.end(); it++){
                        p1.push_back(*it);
                    }
                }
                sort(p1.begin(),p1.end());sort(p2.begin(),p2.end());
                sort(p3.begin(),p3.end());sort(p4.begin(),p4.end());
                p.clear();
                num++;
                temp1=0;
            }
            else if (temp=='s'&&num%4==3) {
                scanf("%d%d", &x, &y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p3.begin(), p3.end(), k) - p3.begin());
                    p3.erase(p3.begin() + temp2);
                }
                num++;
            }
            else if (temp=='!'&&num % 4 == 3) {
                scanf("%d",&y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p3.begin(), p3.end(), k) - p3.begin());
                    p3.erase(p3.begin() + temp2);
                }
                num++;
            }
            else if (temp=='?'&&num % 4 == 3) {
                for (auto it = p.end() - 1; it >= p.end() - y; it--) {
                    if (*it == x) {
                        temp1++;
                    }
                }
                if (temp1 == y) {
                    for (auto it = p.begin(); it < p.end(); it++) {
                        p3.push_back(*it);
                    }
                }
                if (temp1 != y) {
                    for (auto it = p.begin(); it < p.end(); it++){
                        p2.push_back(*it);
                    }
                }
                sort(p1.begin(),p1.end());sort(p2.begin(),p2.end());
                sort(p3.begin(),p3.end());sort(p4.begin(),p4.end());
                p.clear();
                num++;
                temp1=0;
            }
            else if (temp=='s'&&num%4==0) {
                scanf("%d%d", &x, &y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p4.begin(), p4.end(), k) - p4.begin());
                    p4.erase(p4.begin() + temp2);
                }
                num++;
            }
            else if (temp=='!'&&num % 4 == 0) {
                scanf("%d",&y);
                for (int i = 0; i < y; i++) {
                    scanf("%d", &k);
                    p.push_back(k);
                     temp2 = (lower_bound(p4.begin(), p4.end(), k) - p4.begin());
                    p4.erase(p4.begin() + temp2);
                }
                num++;
            }
            else if (temp=='?'&&num % 4 == 0) {
                for (auto it = p.end() - 1; it >= p.end() - y; it--) {
                    if (*it == x) {
                        temp1++;
                    }
                }
                if (temp1 == y) {
                    for (auto it = p.begin(); it < p.end(); it++) {
                        p4.push_back(*it);
                    }
                }
                if (temp1 != y) {
                    for (auto it = p.begin(); it < p.end(); it++){
                        p3.push_back(*it);
                    }
                }
                sort(p1.begin(),p1.end());sort(p2.begin(),p2.end());
                sort(p3.begin(),p3.end());sort(p4.begin(),p4.end());
                p.clear();
                num++;
                temp1=0;
            }
        }
        for(auto it=p1.begin();it<p1.end();it++){
            if(it==p1.begin())
                printf("%d",*it);
            else
                printf(" %d",*it);
        }
        printf("\n");
        for(auto it=p2.begin();it<p2.end();it++){
            if(it==p2.begin())
                printf("%d",*it);
            else
                printf(" %d",*it);
        }
        printf("\n");
        for(auto it=p3.begin();it<p3.end();it++){
            if(it==p3.begin())
                printf("%d",*it);
            else
                printf(" %d",*it);
        }
        printf("\n");
        for(auto it=p4.begin();it<p4.end();it++){
            if(it==p4.begin())
                printf("%d",*it);
            else
                printf(" %d",*it);
        }
        printf("\n");
    }
}

?

肝了四個小時(shí),超時(shí)了 cnm?文章來源地址http://www.zghlxwxcb.cn/news/detail-829702.html

到了這里,關(guān)于撲克牌游戲?;E频奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python用撲克牌計(jì)算24點(diǎn)

    一副撲克牌的每張牌表示一個數(shù)(J、Q、K 分別表示 11、12、13,兩個司令都表示 6)。任取4 張牌,即得到 4 個 1~13 的數(shù),請?zhí)砑舆\(yùn)算符(規(guī)定為加+ 減- 乘* 除/ 四種)使之成為一個運(yùn)算式。每個數(shù)只能參與一次運(yùn)算,4 個數(shù)順序可以任意組合,4 個運(yùn)算符任意取 3 個且可以重復(fù)

    2023年04月08日
    瀏覽(21)
  • 如何用Java實(shí)現(xiàn)撲克牌(附源碼)

    如何用Java實(shí)現(xiàn)撲克牌(附源碼)

    目錄 一.撲克牌的數(shù)據(jù)結(jié)構(gòu)? 二.買牌(撲克牌的初始化) 三.洗牌 四.發(fā)牌 五.完整代碼 Card.java CardList.java 六.測試 輸出結(jié)果? 首先,撲克牌是一幅一幅的,除去大小王以外一共有 52 張,我們可以考慮用數(shù)組來存儲,數(shù)組的每一個元素都是一張牌,這是牌庫的牌;除了要考慮牌庫

    2024年02月04日
    瀏覽(23)
  • 劍指 Offer 61. 撲克牌中的順子

    劍指 Offer 61. 撲克牌中的順子 排序,計(jì)算0的個數(shù),看其他的數(shù)字是不是連續(xù)的,不連續(xù)的話用0補(bǔ),如果0的個數(shù)不夠補(bǔ)了,就無法構(gòu)成順子。

    2024年02月11日
    瀏覽(25)
  • 劍指 Offer ! 61. 撲克牌中的順子

    參考資料:力扣K神的講解 劍指 Offer 61. 撲克牌中的順子 簡單 351 相關(guān)企業(yè) 從若干副撲克牌中隨機(jī)抽 5 張牌,判斷是不是一個順子,即這5張牌是不是連續(xù)的。2~10為數(shù)字本身,A為1,J為11,Q為12,K為13,而大、小王為 0 ,可以看成任意數(shù)字。A 不能視為 14。 示例 1: 輸入: [1,2

    2024年02月13日
    瀏覽(27)
  • 數(shù)據(jù)庫編程大賽:一條SQL計(jì)算撲克牌24點(diǎn)

    數(shù)據(jù)庫編程大賽:一條SQL計(jì)算撲克牌24點(diǎn)

    你是否在尋找一個平臺,能讓你展示你的SQL技能,與同行們一較高下?你是否渴望在實(shí)戰(zhàn)中提升你的SQL水平,開闊你的技術(shù)視野?如果你對這些都感興趣,那么本次由NineData主辦的《數(shù)據(jù)庫編程大賽》,將是你的最佳選擇! 本次數(shù)據(jù)庫編程大賽的獎項(xiàng)安排:一等獎(1人)、二

    2024年02月03日
    瀏覽(23)
  • 【C#】使用代碼實(shí)現(xiàn)龍年春晚撲克牌魔術(shù)(守歲共此時(shí)),代碼實(shí)現(xiàn)篇

    【C#】使用代碼實(shí)現(xiàn)龍年春晚撲克牌魔術(shù)(守歲共此時(shí)),代碼實(shí)現(xiàn)篇

    歡迎來到《小5講堂》 大家好,我是全棧小5。 這是《C#》系列文章,每篇文章將以博主理解的角度展開講解, 特別是針對知識點(diǎn)的概念進(jìn)行敘說,大部分文章將會對這些概念進(jìn)行實(shí)際例子驗(yàn)證,以此達(dá)到加深對知識點(diǎn)的理解和掌握。 溫馨提示:博主能力有限,理解水平有限

    2024年02月21日
    瀏覽(21)
  • 小啊嗚產(chǎn)品讀書筆記001:《邱岳的產(chǎn)品手記-16》第30講產(chǎn)品案例分析:Primer的撲克牌交互 & 第31講 產(chǎn)品分析的套路(下):如何出解決方案?

    小啊嗚產(chǎn)品讀書筆記001:《邱岳的產(chǎn)品手記-16》第30講產(chǎn)品案例分析:Primer的撲克牌交互 & 第31講 產(chǎn)品分析的套路(下):如何出解決方案?

    叮嘟!這里是小啊嗚的產(chǎn)品進(jìn)階讀書筆記整理。好記性不如爛筆頭,今天也是努力進(jìn)步的一天。一起加油進(jìn)階吧! Google 出品的 Primer,讓你 5 分鐘學(xué)市場營銷 (1)這種交互方式看起來很像在玩兒撲克牌,所以我們就姑且管它叫 撲克牌交互 ,這其實(shí)也是 卡片設(shè)計(jì) 的一種。

    2024年02月07日
    瀏覽(21)
  • HTML5 實(shí)現(xiàn)撲克翻牌游戲

    HTML5 實(shí)現(xiàn)撲克翻牌游戲

    ?撲克翻牌游戲就是桌面24張牌,玩家翻到兩張相同撲克牌則消去,如果時(shí)間2分鐘到了,仍然沒有成功則游戲失敗。撲克翻牌游戲運(yùn)行結(jié)果如圖1。 ? Html5倒計(jì)時(shí)功能可以使用setTimeout()函數(shù)或者setInterval()函數(shù)來實(shí)現(xiàn)。 1.使用setTimeout實(shí)現(xiàn)倒計(jì)時(shí)功能 setTimeout()會在一個指定的延

    2024年02月13日
    瀏覽(21)
  • 13、Java——“21點(diǎn)”撲克游戲系統(tǒng)(變量+循環(huán))

    13、Java——“21點(diǎn)”撲克游戲系統(tǒng)(變量+循環(huán))

    ?作者簡介:熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進(jìn)。 ??個人主頁:樂趣國學(xué)的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:Java案例分享專欄 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:Java——“21點(diǎn)”撲克游戲系統(tǒng)(變量+循環(huán))

    2023年04月08日
    瀏覽(20)
  • 并查集維護(hù)額外信息,算法思路類似前綴和,結(jié)構(gòu)類似撲克接龍

    并查集維護(hù)額外信息,算法思路類似前綴和,結(jié)構(gòu)類似撲克接龍

    240. 食物鏈 動物王國中有三類動物?A,B,CA,B,C, 這三類動物的食物鏈構(gòu)成了有趣的環(huán)形 。 AA?吃?BB,BB?吃?CC,CC?吃?AA。 現(xiàn)有?NN?個動物,以?1~N 1~N?編號 。 每個動物都是?A,B,CA,B,C?中的一種,但是我們并不知道它到底是哪一種。 有人用兩種說法對這?NN?個動物所構(gòu)成的

    2024年02月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包