洛谷 P1148 拱猪计分

【题目链接】

洛谷 P1148 拱猪计分
题目补充说明:
D10与D11都可能出现,D10作用与D11相同。如果D10与D11同时出现,只算有1张D牌。
当H1~H13都有,但D或S只有1个时:D牌作用:-100分,S牌作用:+100分。

【题目考点】

1. 模拟

【解题思路】

根据题意直接模拟
设布尔数组h,用来记录是否有牌Hi。设布尔变量s12, d10, c10,表示是否存在S、D和C牌。
按照题目描述,根据该玩家手中存在的牌的种类,计算分数。
具体解释见注释。

【题解代码】

解法1:模拟
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
#define N 105
int proc(int n)//n:有n张牌 
{string s;int score = 0;bool h[20] = {}, s12 = false, d10 = false, c10 = false;//h[1]~p[13]:H1~H13 是否存在  int pt[15] = {0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};//pt[i]:牌Hi的分数 for(int i = 1; i <= n; ++i){cin >> s;if(s[0] == 'H')h[stoi(s.substr(1))] = true;//标记h[i]为真 else if(s[0] == 'S')s12 = true;else if(s[0] == 'D')//D10与D11都认为是D10 d10 = true;else if(s[0] == 'C')c10 = true;}bool hasAllH = true;//是否有所有13张H牌 for(int i = 1; i <= 13; ++i)if(h[i] == false){hasAllH = false;break;}if(hasAllH)//如果有全部13张红心牌 {score = 200;//全红心牌加200 if(s12 && d10)//如果同时有S牌和D牌 score = 500;else if(s12)//如果只有S,那么减100 score -= 100;else if(d10)//如果只有D,那么加100 score += 100;if(c10)//如果有C牌,分数乘2 score *= 2;}else//如果并没有持有所有的红心牌 {for(int i = 1; i <= 13; ++i)if(h[i])//如果有Hi这张牌 score += pt[i];if(score == 0 && !s12 && !d10 && c10)//如果只有C牌没有其它牌 score += 50;else{if(s12)//如果有S牌 score -= 100;if(d10)//如果有D牌 score += 100;if(c10)//如果有C牌 score *= 2;}}return score;
}
int main()
{bool isOver;int n, score[5];//score[i]:某局游戏后第i名玩家的得分 while(true){isOver = true;for(int i = 1; i <= 4; ++i){cin >> n;if(n != 0)isOver = false;score[i] = proc(n);//求出第i名玩家的得分 }if(isOver)//如果输入4个0,则跳出 break;for(int i = 1; i <= 4; ++i)//输出每位玩家的得分 cout << (score[i] > 0 ? "+" : "") << score[i] << ' ';//如果是正数则输出正号 cout << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/94360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 基于vue-seamless-scroll无缝滚动的用法和遇到的问题解决

vue 基于vue-seamless-scroll无缝滚动的用法和遇到的问题解决 背景 最近再做一个大屏项目,需要用到表格滚动效果,之前自己写过js实现,最近发现一个组件vue-seamless-scroll可以实现滚动,感觉挺方便的,准备用一下,但是用完之后才发现这个组件有很多坑需要解决.我把用法和一些问…

C++(List)

本节目标&#xff1a; 1.list介绍及使用 2.list深度剖析及模拟实现 3.list和vector对比 1.list介绍及使用 1.1list介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;…

内网综合扫描工具-fscan的安装和使用

简介 一款内网综合扫描工具&#xff0c;方便一键自动化、全方位漏扫扫描。 支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。相当强大&#xff01;&…

java复习-多态性

多态性 在Java中对于多态性由两种实现的模式&#xff1a; 方法的多态性 方法的重载&#xff1a;同一个方法名称可以根据传入的参数类型和个数的不同&#xff0c;进行不同的处理。 方法的覆写&#xff1a;同一个方法可能根据使用子类的不同&#xff0c;由不同的实现。 对象的…

国庆10.04

服务器 代码 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器头文件 #include<QTcpSocket> //客户端头文件 #include<QList> //链表容器 #include<QMessag…

OpenCV(Python)的二值化示例

# -*-coding:utf-8-*- # src&#xff1a; 输入图&#xff0c;只能输入单通道图像&#xff0c;通常来说为灰度图 # - dst&#xff1a; 输出图 # - thresh&#xff1a; 阈值 # - maxval&#xff1a; 当像素值超过了阈值&#xff08;或者小于阈值&#xff0c;根据type来决定&#…

ALSA project the C library reference (ALSA工程 C库参考说明)

作者: Jaroslav Kysela perexperex.cz Abramo Bagnara abramoalsa-project.org Takashi Iwai tiwaisuse.de Frank van de Pol fvdpolcoil.demon.nl前言: 高级linux音频架构(ALSA)来自内核API和库的API.这个篇文章描述了应用层库API和内核层API对应是怎么的interfaces.API用法: …

CAA开发,3DE服务mql、lic 、cnext等部分参考指令

文章目录 1.在登陆3DE平台&#xff0c;没有许可证需要移除2.查询lic命令3.在3DE平台&#xff0c;显示机器没有安装此应用需要重新分配lic4.其他无关指令参考&#xff08;按相关信息进入cnext&#xff09;5.CAA项目快捷方式属性目标参考6.CAA的参考VB启动脚本 1.在登陆3DE平台&a…

【重拾C语言】二、顺序程序设计(基本符号、数据、语句、表达式、顺序控制结构、数据类型、输入/输出操作)

目录 前言 二、顺序程序设计 2.1 求绿化带面积——简单程序 2.2基本符号&#xff1a; 2.2.1 字符集 可视字符 不可视字符 2.2.2 C特定符 关键字 分隔符 运算符 2.2.3 标识符 2.2.4 间隔符 2.2.5 注释 2.3 数据 2.3.1 字面常量&#xff08;Literal Constants&am…

扫雷小游戏(简单详细)(内附完整代码)

设计总体思路 实现游戏可以一直玩&#xff0c;先打印棋盘&#xff0c;玩家和电脑下棋&#xff0c;最后分出胜负。 如果编写较大的程序&#xff0c;我们可以分不同模块 例如这个扫雷&#xff0c;我们可以创建三个文件 分别为&#xff1a; game.h 函数的声明game.c 函数的…

MySQL数据库基础回顾与复习

MySQL数据库 一、原理定义概念 定义 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库 数据库是长期储存在计算机内、有组织的、可共享的数据集合 分类&#xff1a; &#xff08;1&#xff09;非结构化数据&#xff1a; 数据相对来讲没…

微软输入法如何打勾和箭头的符号

文章目录 一、打 “√” 符号二、打 “←” 和 “→” 符号 一、打 “√” 符号 选中 “表情包” 图标 选中 “Ω” 符号后&#xff0c;下拉找到 “√” 即可。 微软输入法打 “ ”这个符号直接输入拼音“cha”就行。 二、打 “←” 和 “→” 符号 拼音直接打 “zuo” 或 “…

苹果ios系统IPA包企业签名手机下载应用可以有几种方式可以下载到手机?

一、App Store签名&#xff1a;这是最常见和推荐的苹果签名方式。用户可以通过苹果的官方应用商店App Store下载并安装经过苹果审核的应用程序。这种签名方式确保了应用程序的安全性和可靠性&#xff0c;因为App Store对应用进行了严格的审核和验证。 二、企业签名&#xff1a;…

【Kafka专题】Kafka集群架构设计原理详解

目录 前言前置知识课程内容一、Kafka的Zookeeper元数据梳理1.1 zookeeper整体数据1.2 Controller Broker选举机制1.3 Leader Partition选举机制1.4 Leader Partition自动平衡机制*1.5 Partition故障恢复机制1.6 HW一致性保障-Epoch更新机制1.7 总结 学习总结感谢 前言 Kafka的…

【VUE复习·9】v-for 基础用法(循环渲染也叫列表渲染)

总览 1.v-for 都能循环什么 2.用法 一、v-for 都能遍历什么 能循环的东西包括&#xff1a;数组、对象、字符串&#xff08;和java里面的3个引用数据类型一样&#xff09;、纯粹循环数量&#xff08;少用&#xff09; 二、用法 1.用法1&#xff1a;简单循环&#xff08;遍历…

python 排序(冒泡排序,选择排序,快速排序)

1.冒泡排序&#xff1a; 1.第一轮&#xff0c;从第一个元素开始&#xff0c;第一个元素和后面的元素对比&#xff0c;如果比第一个元素大&#xff0c;就交换位置。每个相邻的元素进行比较&#xff0c;一轮后&#xff0c;最小的就排在了最后。 2.第二轮&#xff0c;从第二个元…

扩散模型diffusion model 代码解读

代码来自这里 使用pytorch轻松实现简单扩散模型diffusion model&#xff08;附可跑通全部代码&#xff09; - 知乎 1.作者首先自己定义了一个数据集&#xff0c;也就是一堆散点&#xff0c;组成的S。 2.这些都是预先设置好的参数&#xff0c;也就是利用这些来做learning的提示…

【35】gorm gen tool生成数据库对应go文件

一. 安装gen tool go install gorm.io/gen/tools/gentoollatest二. 生成go文件 gentool -dsn "user:pwdtcp(localhost:3306)/database?charsetutf8mb4&parseTimeTrue&locLocal" -tables "orders,doctor"gentool -c "./gen.yml" gen.ym…

【OLSR路由协议】链路状态路由(OLSR)协议中选择多点中继节点算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器

星光下的赶路人star的个人主页 内心的平静始于不再让他人掌控你的感情 文章目录 0、前言1、窗口&#xff08;Window&#xff09;1.1 窗口的概念1.2 窗口的分类1.3 窗口API概览1.4 窗口分配器&#xff08;Window Assigner&#xff09;1.4.1 时间窗口1.4.2 计数窗口 1.5 窗口函数…