T6
2025-01-19 22:23:48
发布于:北京
24阅读
0回复
0点赞
T6
题目名称:打牌
时间限制:.
空间限制:
题意分析
这道题输入个测试点,每个测试点有四个数,表示小王和小美的牌。
游戏一共两个回合。在每一回合游戏里,小王和小美都随机选择一张未反转的牌将其翻转,两张牌中数据更大的人能赢下这个回合,且赢的回合数多的人赢得整场游戏,如果赢的回合数一样多,就是平局。
关键思路
根据题意可得,只有在两场小王都赢了的情况下或者一场小王赢了,另一场平局的情况下小王才能赢。
我们可以枚举出6种小王赢了的情况:
1.小王出第1张牌,小美出第1张牌,小王第1张牌大于小美第1张牌,小王出第2张牌,小美出第2张牌,小王第2张牌大于小美第2张牌,小王赢2场,小王胜
2.小王出第1张牌,小美出第1张牌,小王第1张牌等于小美第1张牌,小王出第2张牌,小美出第2张牌,小王第2张牌大于小美第2张牌,小王赢1场,小王胜
3.小王出第1张牌,小美出第1张牌,小王第1张牌大于小美第1张牌,小王出第2张牌,小美出第2张牌,小王第2张牌等于小美第2张牌,小王赢1场,小王胜
4.小王出第1张牌,小美出第2张牌,小王第1张牌大于小美第2张牌,小王出第2张牌,小美出第1张牌,小王第2张牌大于小美第1张牌,小王赢2场,小王胜
5.小王出第1张牌,小美出第2张牌,小王第1张牌等于小美第2张牌,小王出第2张牌,小美出第1张牌,小王第2张牌大于小美第1张牌,小王赢1场,小王胜
6.小王出第1张牌,小美出第2张牌,小王第1张牌大于小美第2张牌,小王出第2张牌,小美出第1张牌,小王第2张牌等于小美第1张牌,小王赢1场,小王胜
由于出牌顺序可以变换,所以每次方案数+2
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
while(t --){
int a[5];
cin >> a[1] >> a[2] >> a[3] >> a[4];
int ans = 0;
if(a[1] > a[3] && a[2] == a[4]) ans += 2;//方法1
if(a[1] == a[3] && a[2] > a[4]) ans += 2;//方法2
if(a[1] > a[3] && a[2] > a[4]) ans += 2;//方法3
if(a[1] > a[4] && a[2] == a[3]) ans += 2;//方法4
if(a[1] == a[4] && a[2] > a[3]) ans += 2;//方法5
if(a[1] > a[4] && a[2] > a[3]) ans += 2;//方法6
cout << ans << endl;
}
}
这里空空如也
有帮助,赞一个