首页 > 试题广场 >

纸牌游戏

[编程题]纸牌游戏
  • 热度指数:3614 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}Alex 与 Bob 进行如下纸牌游戏:
\hspace{23pt}\bullet\, 牌面数字均为 1\sim10 的整数;
\hspace{23pt}\bullet\, 每位玩家各有两张暗牌(自己也不知道牌面);
\hspace{23pt}\bullet\, 游戏共两回合,每回合双方各随机翻开一张未翻开的牌并比较大小;
\hspace{23pt}\bullet\, 翻开的牌面数字更大者赢得该回合,若相等则该回合无人获胜;
\hspace{23pt}\bullet\, 两回合结束后,赢得回合数更多者获胜;若平局则无人获胜。

\hspace{15pt}已知四张牌的具体数字:Alex 拥有 a_1,a_2,Bob 拥有 b_1,b_2。牌面分配固定,但翻牌顺序随机。请计算 Alex 最终获胜的不同翻牌顺序数量

输入描述:
\hspace{15pt}第一行输入整数 t\left(1\leqq t\leqq 10^4\right),表示测试用例数量。
\hspace{15pt}每个测试用例一行输入四个整数 a_1,a_2,b_1,b_2\left(1\leqq a_i,b_i\leqq10\right)


输出描述:
\hspace{15pt}对每个测试用例输出一行一个整数,表示 Alex 获胜的翻牌顺序数量。
示例1

输入

5
3 8 2 6
1 1 1 1
10 10 2 2
1 1 10 10
3 8 7 2

输出

2
0
4
0
2

说明

考虑第一个测试案例,当Alex开始时有牌值为 26 的牌,而Bob开始时有牌值为 38 的牌。游戏可能以 4 种不同的方式进行:

- Alex 翻 3 ,Bob 翻 2 。Alex 赢了第一轮。然后,Alex 翻 8 ,Bob 翻 6 。Alex 同样赢得第二轮。由于 Alex 赢了 2 个回合,所以他赢得了游戏。

- Alex 翻转 3 ,Bob 翻转 6 。Bob赢得第一轮。然后,Alex 翻 8 ,Bob 翻 2 。Alex 赢第二轮。由于双方赢得的回合数相同,因此没有人获胜。

- Alex 翻转 8 ,Bob 翻转 6 。Alex 赢了第一轮。然后,Alex 翻出 3 ,Bob 翻出 2 。Alex 同样赢得第二轮。由于 Alex 赢了 2 轮,所以他赢得了游戏。

- Alex 翻转 8 ,Bob 翻转 2 。Alex 赢了第一轮。然后,Alex 翻 3 ,Bob 翻 6 。Bob赢得这一轮。由于双方赢得的回合数相同,因此没有人获胜。

所以,最终Alex会赢的可能情况只有 2 种。
头像 爱健身的coder很热爱生活
发表于 2025-10-18 14:07:05
#include <iostream> using namespace std; bool check(int a1,int b1,int a2,int b2){ if(a1>b1&&a2>b2)return true; if(a1==b1& 展开全文
头像 BraveCoder
发表于 2025-08-28 19:06:00
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 展开全文
头像 zhenghahahawda
发表于 2025-07-28 17:24:16
#include <iostream> using namespace std; void solve() { int a1,a2,b1,b2;cin>>a1>>a2>>b1>>b2; int wins = 0; 展开全文
头像 高余冠之岌岌兮
发表于 2025-07-04 23:45:28
#include <iostream> #include <vector> using namespace std; int main() { int t; cin>>t; int p[t][4]; for(int i=0;i&l 展开全文
头像 讲道理的花生米少糖去冰
发表于 2025-06-29 11:49:32
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () = 展开全文
头像 爱喝伏特加的琴
发表于 2025-07-20 21:01:10
#include <bits/stdc++.h> using namespace std; int main() { int t;cin>>t; for(int k=1;k<=t;k++) { int a[2],b[2],win=0; cin>> 展开全文
头像 归虚梦演
发表于 2025-07-21 16:59:40
#include <bits/stdc++.h> using namespace std; #define int long long #define PII pair<int,int> #define endl '\n' int mod = 1000000007; cons 展开全文
头像 niuke9999
发表于 2025-11-16 09:39:49
#include <stdio.h> #include <stdbool.h> bool compare(int a1, int b1, int a2, int b2) { if (a1 > b1 && a2 > b2) return 展开全文
头像 湮雨
发表于 2025-08-21 17:22:47
#include <iostream> using namespace std; int get_Alex_score(int a1,int a2,int b1,int b2){ int AlexScore=0; if(a1>b1&&a2>= 展开全文
头像 丨阿伟丨
发表于 2025-08-27 12:29:43
题目链接 BGN15 纸牌游戏 题目描述 Alex 与 Bob 进行纸牌游戏。Alex 拥有牌 ,Bob 拥有牌 。 游戏共两回合,每回合双方各随机翻开一张未翻开的牌并比较大小。 牌面数字更大者赢得该回合。 若相等则该回合无人获胜。 两回合结束后,赢得回合数更多者获胜。若回合数相同则为平局。 已 展开全文