尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
P14292 [JOI2024 预选赛 R2] 卡牌游戏 / Card Game 2 题解
题目描述比太郎持有 张卡片第 张卡片1≤≤上写有一个整数 。他希望从这些卡片中选出满足以下条件的三张卡片。条件选出的三张卡片上所写的整数彼此相差 3。更精确地说选出的三张卡片上的整数可以表示为某个整数 以及 3、6。例如若比太郎持有 5 张卡片上面分别写着 2,4,5,7,10则选择写有 4,7,10 的三张卡片即可满足条件。给定比太郎所持卡片的信息请编写一个程序判断是否能够选出满足条件的三张卡片。输入格式输入以如下格式给出1 2 ⋯ 输出格式若能够选出满足条件的三张卡片则输出Yes否则输出No。输入输出样例 #1输入 #13 2 5 8输出 #1Yes输入输出样例 #2输入 #24 1 4 6 4输出 #2No输入输出样例 #3输入 #38 9 8 11 1 1 6 10 4输出 #3No输入输出样例 #4输入 #420 2 15 4 30 6 8 11 27 14 3 16 26 19 2 23 21 18 13 28 6输出 #4Yes说明/提示样例解释样例 1 可以选择 2,5,8样例 2,3 不存在可以选择的情况样例 4 可以选择 15,18,21约束3≤≤200000。1≤≤2000001≤≤。所有输入的值均为整数。子任务20 分3。20 分≤71≤≤。30 分≤100。30 分无额外约束。题解题意给出一个含有 N 个数的数组判断是否能够选出满足彼此相差 3的三个整数思路3≤≤200000。所以三重循环肯定是不行的。但是我们又知道了1≤≤2000001≤≤。所以可以运用桶数组用 m 记录最大值从 1 到 m-6 遍历一遍开始判断如果其中出现了 x、x3 和 x6 都存在的情况直接coutYes然后return 0。AC代码#includebits/stdc.h using namespace std; #define int long long bool z[100000005];//布尔类型避免MLE int a[111]; signed main(){ int t,n,m,i,x,j,k,l; // for(cint;t0;t--){ cinn; if(n100){//n100时三重循环不会TLE for(i1;in;i){ cina[i]; } sort(a1,an1); x0; for(j1;jn-2;j){ for(kj1;kn-1;k){ for(lk1;ln;l){ if(a[k]-a[j]3a[l]-a[k]3){ x1; break; } } if(x) break; } if(x) break; } if(x) coutYes\n; else coutNo\n; } else{//桶数组 m0; for(i1;in;i){ cinx; z[x]1; mmax(m,x); } x0; for(i1;im-6;i){ if(z[i]z[i3]z[i6]){ x1; break; } } if(x) coutYes\n; else coutNo\n; } // } // for(cint;t0;t--){//二分不会写﹏ // cinn; // for(i1;in;i){ // cina[i]; // } // sort(a1,an1); // bool x30,x60; // for(i1;in;i){ // x30,x60; // int si1,bn; // while(sb){ // int sb(sb)/2; // if(a[sb]a[i]3){ // bsb-1; // } // else if(a[sb]a[i]3){ // ssb1; // } // else{ // x31; // break; // } // } // if(!x3) // continue; // while(sb){ // int sb(sb)/2; // if(a[sb]a[i]6){ // bsb-1; // } // else if(a[sb]a[i]6){ // ssb1; // } // else{ // x61; // break; // } // } // if(x6){ // break; // } // } // if(x6) // coutYes\n; // else // coutNo\n; // } return 0; }
RELATED

相关推荐

其实以前也会有陆续的用户反馈不减少,

其实以前也会有陆续的用户反馈不减少,

才让我们重视了起来。我们前端一共三款产品,app、官网、H5,其中app使用量最大,官网其次,H5平时使用量极少但是做活动期间流量会暴增(活动一般都是H5游戏居多,H5也便于推广营销),前端的三款产品都…

📅 2026/10/2 12:31:09
35岁转行AI大模型:挑战、机遇与实战路径

35岁转行AI大模型:挑战、机遇与实战路径

1. 35岁转行AI大模型的现实挑战与机遇去年我在技术社区遇到一位36岁的机械工程师王磊,他用了14个月系统学习AI大模型开发,现在已成功加入某智能客服创业团队。这个案例让我意识到:年龄和零基础从来不是转行的绝对障碍,关键在于方法…

📅 2026/10/2 16:10:55
一个由进程内存布局异常引起的问题

一个由进程内存布局异常引起的问题

前段时间业务反映某类服务器上更新了 bash 之后,ssh 连上去偶发登陆失败,客户端吐出错误信息如下所示: 图 - 0 该版本 bash 为部门这边所定制,但是实现上与原生版并没有不同,那么这些错误从哪里来? 是 …

📅 2026/10/2 15:35:13
MORE NEWS

更多资讯

📰

RH294实战拆解:Ansible playbook驱动的RHEL 8.6系统治理

1. 这不是“考试指南”,而是一份RHCE下午场(RH294)的实战拆解手册如果你正盯着红帽官网那页写着“RHCE (RH294) Exam Objectives”的PDF发呆,或者刚在B站刷完第7个“RHCE速成”视频却依然分不清ansible-playbook和ansible-invento…

📰

企业级宿舍维修管理系统:SpringBoot+Vue+MyBatis实战拆解

“企业级宿舍维修管理系统”这个标题,不少同学第一眼看到会觉得:宿舍维修?不就是学生报修、维修工改状态,前后端各写几个页面拼起来完事吗?但真正把项目做落地之后你会发现,难点从来不是增删改查&#xff0…

📰

悬臂梁连续体振动分析:Matlab解析解与有限元仿真全流程

悬臂梁连续体振动,这是结构动力学里最经典的入门题。不过,说它“入门”不代表简单——很多做有限元仿真的人第一次用Matlab算模态,就是从悬臂梁开始的。一端固定、一端自由,边界条件清晰,质量沿长度连续分布&#xff0…

📰

Dapr 1.17.0升级指南:发布说明解读与实战踩坑记录

Dapr 的版本列车跑得比我预想中快得多。好像前一阵还在处理 1.16 的升级遗留问题,一抬头 1.17.0 的发布说明已经出现在邮件列表里了。很多团队看到 minor 版本发布的第一反应都是"先观望,等别人踩完坑再说",这完全合理。但发布说明…

📰

JabRef+LaTeX:高效管理BibTeX参考文献的实战指南

论文写到最后,参考文献那一栏还在手动折腾的人,我见得太多了。明明LaTeX已经帮你解决了排版的大部分问题,结果到了参考文献这里,有人还在复制粘贴别人bib文件里的条目,有人一条条手工敲,有人等编译完才发现…

📰

8款AI论文写作软件实测:自考论文从选题到降重全流程推荐

自考本、专升本、成人本科的朋友们,写到论文这一关,是不是感觉比考十门课还头疼?选题没方向、大纲不会列、正文憋不出来、查重还得一降再降,关键是身边没人能帮你逐句改。我自己当年就是被论文折腾掉一层皮,所以这两年…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬