B-名牌赌王(本人遇到的题,做个笔记)
题解:
#include <iostream> #include <queue> //需要用小根堆的优先队列 #include <unordered_map> //用无序映射 using namespace std; bool pai() {int n, m;cin >> n >> m; priority_queue<int, vector<int>, greater<int>>q; //用来往里面存牌unordered_map<int, int>arr; //记录每张牌的个数while (n--){int num;cin >> num; //输入当前的牌arr[num]++; //将当前牌的数量加1q.push(num); //往优先队列里插入该牌}while (!q.empty()) //根据队列里面个数去循环(只要队列不为空就循环){int number = q.top(); //将队列的堆顶元素(最小值)记录下来q.pop(); //必须得先弹出再去判断这个牌的数量if (arr[number] == 0) continue; //如果当前牌的个数为0,则开始下一次循环for (int i = 0; i < m; i++) //根据每组顺子的长度去循环{int cnt = arr[number+i]--; //用cnt记录当前牌的个数,记录后,就让当前牌个数-1,因为当前牌构成了顺子,且索引是number+i,因为只有连着的才能构成顺子if (cnt == 0) return false; //如果要构成顺子的该牌数量为0,则表示无法构成顺子,返回false}}return true; //若能顺利构成若干组m长度的顺子,则返回true} int main() {int t;cin >> t;while (t--){if (pai()) cout << "YES" << endl;else cout << "NO" << endl;}}
以前写的代码:
#include <bits/stdc++.h> using namespace std; int main() {int t;cin >> t; //有几副牌vector<int>arr; //定义的数组来放牌while (t--) //根据t是多少来循环几次{int n, m;cin >> n >> m; //输入1副牌的数量以及顺子长度arr.resize(n);for (int i = 0; i < n; i++) cin >> arr[i];sort(arr.begin(), arr.end(), less<int>()); //将牌从小到大排序int min = 0; //顺子最开始的那个牌int flag = 0; //去判断有没有找到顺子的头int count = 0; //去计算该顺子的目前长度int zushu = 0; //有几组顺子bool zuizhonflag = 1; //去判断最终能否符合题中条件,即若干组m长度的顺子if (n % m == 0) {zushu = n / m; //来记录顺子有几组}else //如果不能组成若干组长度为m的顺子则直接终止,看下一副牌{cout << "No" << endl;continue;}while (zushu--) //有几组顺子就循环几次{zuizhonflag = 1; //先假设符合题意,能组成若干组长度为m的顺子count = 0; //将目前顺子长度定义为0flag = 0; //0表示还没有找到顺子的头for (int i = 0; i < n; i++) //遍历该副牌{if (arr[i] != 0 && flag == 0) //若flag=0,且找到第一个不是0的牌,则该牌为顺子的头,用min记录{min = arr[i];arr[i] = 0; //将该牌删去,记录为0flag = 1; //1表示找到顺子的头了count++; //顺子长度加1}if (flag == 1 && arr[i] == min + 1) //若存在顺子的头,且该牌是顺子中的下一个牌(比如,顺子头是2,则要找3){min = arr[i]; //则将min记录为arr[i](找到3后,把min记录为3,方便去找4)arr[i] = 0; //将该牌删去count++; //顺子长度加1}if (count == m) break; //若顺子长度到了所规定的m长,则跳出for循环,开始找下一组顺子}if (count != m) //若遍历完for循环,发现顺子长度不够,则该副牌不符合题意{zuizhonflag = 0;cout << "No" << endl; //输出No,跳出while循环,开始下一副牌break;}}if (zuizhonflag == 1) //若该副牌符合题意,则输出YES,并清空vector容器{cout << "Yes" << endl;}arr.clear(); //清空容器}return 0; }
参考(来自学长们题解):
资料:
c++ unordered_map和map的区别-CSDN博客
C++ map与unordered_map区别及使用_c++中的map和unordered_map的区别和使用场景-CSDN博客
相关文章:
B-名牌赌王(本人遇到的题,做个笔记)
题解: #include <iostream> #include <queue> //需要用小根堆的优先队列 #include <unordered_map> //用无序映射 using namespace std; bool pai() {int n, m;cin >> n >> m; priority_queue<int, vector<int>, gr…...
博客评论回复03
接着之前写的,之前返回的数据集按道理来说渲染出来还是丑丑的,因此这次我看着抖音的评论样子,自己瞎写了一通,不过也算是模仿出来了虽然肯定没有抖音写的好。 类似与前面几章写的表结构 首先看看抖音评论区是怎么样的?…...
【【萌新的学习之Numpy数组的使用】】
萌新的学习之Numpy数组的使用 先记录一下之前的关于函数的设计 通过创造类的形式 复习完毕之后介绍numpy数组的使用 #整数型数组遇到除法 (即便是除以整数) 不同维度的数组之间 从外形上的本质区别 一维数组用1层中括号 二维数组用2层中括号 三维数…...
RabbitMQ3.13.x之七_RabbitMQ消息队列模型
RabbitMQ3.13.x之七_RabbitMQ消息队列模型 文章目录 RabbitMQ3.13.x之七_RabbitMQ消息队列模型1. RabbitMQ消息队列模型1. 简单队列2. Work Queues(工作队列)3. Publish/Subscribe(发布/订阅)4. Routing(路由)5. Topics(主题)6. RPC(远程过程调用)7. Publisher Confirms(发布者…...
Android JNI 调用第三方SO
最近一个项目使用了Go 编译了一个so库,但是这个so里面还需要使用第三方so库pdfium, 首先在Android工程把2个so库都放好 在jni中只能使用dlopen方式,其他的使用函数指针的方式来调用,和windows dll类似,不然虽然编译过了但是会崩溃…...
Vid2seq
Vid2Seq 应该是目前为止,个人最中意得一篇能够实际解决对一段视频进行粗略理解得paper了。个人认为它能够真正能解决视频理解是因为它是对一个模型整体做了训练,而不仅仅是通过visual encoders(e.g BLIP/CLIP/…)和 其它multi modal 的encoder直接过了个projection,做一个…...
Opencv人机交互界面设置
Opencv人机交互界面设置 以下是一些常见的OpenCV人机交互界面设置: 窗口交互 显示窗口:可以使用cv2.imshow()函数在屏幕上显示图像。例如,要显示名为“image”的图像,可以使用以下代码: import cv2img cv2.imread…...
蓝桥杯算法心得——字典树考试(贡献度+前缀和)
大家好,我是晴天学长,贡献度的题,找到技巧非常重要,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .字典树考试 字典树考试 问题描述 蓝桥学院最近教学了字典树这一数…...
Linux下Qt生成程序崩溃文件
文章目录 1.背景2.Qt编译生成程序2.1.profile模式的本质 3.执行程序,得到core文件4.代码定位4.1.直接使用gdb4.2.使用QtCreator 5.总结6.题外话6.1.profile模式和debug模式的区别 1.背景 在使用Qt时,假如在windows,当软件崩溃时,…...
Go语言中测试和性能
1. 测试:软件开发最重要的方面 测试软件程序可能是软件开发人员能够做的最重要的事情。通过测试代码的功能,开发人员能够在很大程度上确定程序是有效的。另外,每次修改代码后,开发人员都可运行测试,确认没有引入Bug和衰退。通过测试软件,还能够让软件工程师确认程序按期望…...
回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测
回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测 目录 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于CPO-GPR基于冠豪猪算法优化高斯…...
python 日期字符串转换为指定格式的日期
在Python编程中,日期处理是一个常见的任务。我们经常需要将日期字符串转换为Python的日期对象,以便进行日期的计算、比较或其他操作。同时,为了满足不同的需求,我们还需要将日期对象转换为指定格式的日期字符串。本文将详细介绍如…...
day03-Docker
1.初识 Docker 1.1.什么是 Docker 1.1.1.应用部署的环境问题 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题开发、测试、生产环境有差异 例如一个项目中,部署时需要依…...
C语言函数实现冒泡排序
前言 今天我们来看看怎么使用函数的方式实现冒泡排序吧,我们以一个数组为例arr[] {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。 代码实现 #include<stdio.h> void bubble_sort(int arr[], int sz) {int i 0;for (i 0;i < s…...
区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计
区间预测python|QR-CNN-BiLSTMKDE分位数-卷积-双向长短期记忆神经网络-核密度估计-回归时间序列区间预测 模型输出展示: (图中是只设置了20次迭代的预测结果,宽度较宽,可自行修改迭代参数,获取更窄的预测区间) 注&am…...
Java 分支结构 - if…else/switch
顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。 Java有两种分支结构: if语句switch语句 if语句 一个if语句包含一个布尔表达式和一条或多条语句。 语法 If 语句的用语法如下: if(布尔表达式) {//如果布尔表达…...
【Unity每日一记】如何从0到1将特效图集制作成一个特效
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
磁力链接的示例与解释
磁力链接(Magnet URI scheme)是一种特殊类型的统一资源标识符(URI),它包含了通过特定散列函数(如SHA-1)得到的文件内容的散列值,而不是基于位置或名称的引用。这使得磁力链接成为在分…...
云存储中常用的相同子策略的高效、安全的基于属性的访问控制的论文阅读
参考文献为2022年发表的Efficient and Secure Attribute-Based Access Control With Identical Sub-Policies Frequently Used in Cloud Storage 动机 ABE是实现在云存储中一种很好的访问控制手段,但是其本身的计算开销导致在实际场景中应用收到限制。本论文研究了一种LSSS矩…...
JVM高级篇之GC
文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马…...
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
原题链接:三国游戏 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 0)。 游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时…...
java之static详细总结
static也叫静态,可以修饰成员变量、成员方法。 成员变量 按照有无static分为两种: 类变量:static修饰,属于类,与类一起加载一次,在内存中只有一份,会被类的全部对象共享实例变量(…...
RabbitMQ3.13.x之六_RabbitMQ使用场景
RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ?1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ? RabbitMQ 是一个可靠且…...
C++ 类和对象(初篇)
类的引入 C语言中,结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式: class className {// 类体:由成员函…...
微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Spring Boot Actuator
概述 Spring Boot Actuator是Spring Boot的一个功能模块,用于提供生产环境中常见的监控和管理功能。它提供了各种端点(endpoints),可以用于监视应用程序的运行状况、收集应用程序的指标数据以及与应用程序进行交互。 以下是Spri…...
我与C++的爱恋:类与对象(一)
🔥个人主页:guoguoqiang. 🔥专栏:我与C的爱恋 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象&…...
os模块篇(十八)
文章目录 os._exit(n)os.forkpty()os.kill(pid, sig, /)os.killpg(pgid, sig, /)os.nice(increment, /)os.pidfd_open(pid, flags0)os.plock(op, /)os.popen(cmd, moder, buffering-1)os.posix_spawn(path, argv, env, *, file_actionsNone, setpgroupNone, resetidsFalse, set…...
Oracle 数据库工作中常用知识点:sql语法与常用函数
.to_date()函数 to_date函数是Oracle特有的函数,该函数用来做日期转换。 举例: SELECT TO_DATE(‘2006-05-01 19:25:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL 日期格式: YYYY、YYY、YY 分别代表4位、3位、2位的数字年 …...
软件工程
开发模型 瀑布模型 用于结构化模型开发 适用需求明确或者二次开发 原型模型 适用需求不明确 演化模型 增量模型 适用需求不明确 先做一块,再做一块,这样不断的对核心功能的审视,降低风险 螺旋模型 由多个模型组合成 适用需求不明…...
100个免费网页设计模板/重庆做网络优化公司电话
USB4系统结构由USB4主机,USB4集线器和USB4功能设备这3部分组成。USB4主机可以是支持USB4的笔记本和平板等,至少需要一个USB Type-C接口,支持USB 3.2数据传输,PCIe数据传输和DisplayPort视频信号传输。USB4集线器是一个USB4接口扩展…...
如何做美发店网站/百度引擎搜索引擎
前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享,这里我稍微整理一下也给大家分享一下,关于性能优化这个话题很大,涉及面可以很广,也可以很深入,本人能力有限,不会给大家讲特别难懂&#x…...
免费建网站哪个平台好/企业网站设计优化公司
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我写了一个C文件tdbconnect.cpp,想通过matlab调用该文件中的函数。在tdbconnect.cpp中有mexFunction函数,你们晓得是什么函数的。在mexFunction函数中,我创建了一个指针void *的,现在…...
网站留言功能/百度大搜
随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMillis() 因为random的随机数在0-1之间,所…...
WordPress的欢迎页面/廊坊网站建设优化
2019独角兽企业重金招聘Python工程师标准>>> 浅层神经网络:https://zhuanlan.zhihu.com/p/29500978 转载于:https://my.oschina.net/u/1760714/blog/1540504...
网站图怎么做会高清/如何进行网站推广?网站推广的基本手段有哪些
XML配置文件 eProsima Fast DDS允许加载XML配置文件,每个文件包含一个或多个XML配置。除了用于加载用户XML文件的API函数外,Fast DDS还尝试在初始化时定位和加载多个XML文件。Fast DDS提供以下选项: 加载位于当前执行路径中的名为DEFAULT_FASTRTPS_PROFILES.XML的XML文件。加…...