当前位置: 首页 > news >正文

HJ123 预知

知识点数论

校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。

描述

牌桌上有 nn 种不同的卡牌,第 ii 种卡牌有 aiai​ 张。初始时,所有的卡牌均背面朝上,但不知道其确切的种类。你有两次翻牌机会,翻牌后,如果两张卡牌种类一致,那你就输了。两次翻牌同时进行(不存在根据翻开的第一张牌更改策略的情况)。

你不喜欢运气游戏,所以你可以通过手段随机预知 kk 张卡牌后再进行游玩。

然而,预知很累!你想要知道,你至少需要预知多少张卡牌,才能保证你不会输。

输入描述:

每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≦T≦2×105)T(1≦T≦2×105) 代表数据组数,每组测试数据描述如下:

第一行输入一个整数 n(1≦n≦2×105)n(1≦n≦2×105) 代表卡牌种类数。
第二行输入 nn 个整数 a1,a2,…,an(1≦ai≦109)a1​,a2​,…,an​(1≦ai​≦109) 代表每种卡牌数量。

除此之外,保证每一组测试数据的卡牌总数之和不小于 22 ;单个测试文件的 nn 之和不超过 2×1052×105 。

输出描述:

对于每一组测试数据,如果没有必胜策略,直接输出 −1−1 ;否则,在单独的一行上输出一个整数,代表你至少需要预知多少张卡牌,才能保证你不会输。

示例1

输入:

3 2 1 1 1 10 2 2 3

复制输出:

0 -1 3

复制说明:

对于第一组测试数据,只有两张卡牌,且各不相同,直接翻开即可。 对于第二组测试数据,由于卡牌种类唯一,不管怎么翻都会输。
#include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int a[N]; void solve() { int n; cin >> n; for (int i = 1; i <= n; i ++ ) cin >> a[i]; if (n == 1) { cout << -1 << endl; return ; } int mx = -1; for (int i = 1; i <= n; i ++){ mx = max(mx, a[i]); } if (mx == 1) cout << 0 << endl; else { int cnt = 0; for (int i = 1; i <= n; i ++ ) { if (a[i] > 1) cnt ++; } if (cnt == 1) cout << mx - 1 << endl; else cout << mx << endl; } } int main(){ int T; cin >> T; while (T -- ) solve(); return 0; }
http://www.jsqmd.com/news/461296/

相关文章:

  • 医药企业如何系统性把握政策法规?一套系统解决信息碎片化难题
  • 舒展解僵硬,松弛养身心|武汉瑜伽伸展课程,禧悦解锁全身舒缓新体验 - 冠顶工业设备
  • 从BERT到ChatGPT:一文精通文本分类的N种姿势(附代码)
  • Europe can only be Europe.
  • OpenClaw的数据是存在哪里的?会上传到云端吗?深度解析
  • 2026年高端进口板材品牌决策咨询评测报告 - 品牌推荐
  • 代码随想录算法训练营第四十二天|52. 携带研究材料、518. 零钱兑换 II、377. 组合总和 Ⅳ、57. 爬楼梯(进阶)
  • 它和厂商推出的MaxClaw、Kimi Claw、WorkBuddy等是什么关系?深度解析
  • 产品表面清洁度检测设备,专业配套,国际标准-西恩士工业 - 工业设备研究社
  • 简传(局域网共享文本文件)
  • 2026迅雷下载不限速_迅雷下载下载加速
  • 为什么叫它‘数字打工人‘或‘硅基秘书‘?深度解析
  • 信管毕设简单的选题怎么选
  • ABB 2TAZ662012R2000电力监测仪表
  • OpenClaw能同时连接多个AI模型(如DeepSeek、Kimi)吗?深度解析
  • AI测试工程笔记 04:Codex + Playwright 自动修复 UI 自动化脚本
  • Java Scanner 类详解
  • ‘养虾‘和‘训虾‘有什么区别?深度解析
  • OpenClaw有官方操作界面吗?长什么样?深度解析
  • 什么是Amdahl定律?如果你优化了PHP-FPM的某个模块,如何衡量这个优化对整个系统性能的提升?
  • 基础科学几乎停滞,谁限制人类发展?科学家的猜测或许是正确的(视频脚本)
  • 并发和并行的区别是什么?在PHP-FPM的多进程模型中,是并发还是并行?
  • 周鸿祎说OpenClaw还有三个问题没解决,是哪三个?深度解析
  • python flask django外卖点餐配送系统网站设计和实现 员工
  • Python基于flask某公司员工酬薪工资管理系统
  • OpenClaw是哪个公司开发的?是国产软件吗?深度解析
  • Python基于flask程序员薪资工资分析系统爬虫可视化
  • 用OpenClaw能实现‘一人公司‘是什么意思?深度解析
  • AI营销新纪元:如何选择靠谱的人工智能服务商,实现业绩指数级增长?
  • “python”命令不可用