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

打卡信奥刷题(3445)用C++实现信奥题 P10404 「XSOI-R1」原神数

P10404 「XSOI-R1」原神数

题目描述

原神数xxx需要同时满足以下条件:

  • xxx为质数。

  • xxx的十进制位两两不同。

比如131131131不是原神数,因为他的百位和个位相等;424242也不是,因为不是质数;171717就是一个原神数。

qqq次询问,现在要你求出lllrrr之间的原神数数量。

输入格式

第一行一个正整数qqq

接下来qqq行每行两个正整数lllrrr

输出格式

qqqqqq个正整数,表示答案。

输入输出样例 #1

输入 #1

4 45 66 100 140 2 90 114514 1919810

输出 #1

4 6 23 13321

说明/提示

【样例解释 #1】

100∼140100 \sim 140100140之间的原神数有103,107,109,127,137,139103,107,109,127,137,139103,107,109,127,137,139,共666个。

数据规模与约定

本题采用捆绑测试。

  • subtask 0(15 pts):1≤l≤r≤1021 \le l \le r \le 10^21lr102

  • subtask 1(15 pts):1≤l≤r≤1041 \le l \le r \le 10^41lr104

  • subtask 2(35 pts):1≤l≤r≤1071 \le l \le r \le 10^71lr107

  • subtask 3(35 pts):1≤l≤r≤10181 \le l \le r \le 10^{18}1lr1018

对于所有数据,保证1≤l≤r≤10181 \leq l \leq r \leq 10^{18}1lr10181≤q≤1051 \leq q\leq 10^51q105

C++实现

#include<bits/stdc++.h>usingnamespacestd;constintN=1e6+50;intpr[N],tot,q;longlongl,r;vector<int>Genshin;boola[N]={1,1},vis[10];voidzhi(){for(inti=2;i<=N;i++){if(!a[i])pr[++tot]=i;for(intj=1;j<=tot&&i*pr[j]<=N;j++){a[i*pr[j]]=1;if(i%pr[j]==0)break;}}}boolispr(intx){if(x<=N)return!a[x];for(inti=1;pr[i]*pr[i]<=x;i++)if(x%pr[i]==0)return0;return1;//没有就是质数}voiddfs(intlen,intstep,intgoal){if(len==goal){//达到目标长度if(ispr(step))Genshin.push_back(step);//判断是不是质数return;}for(inti=0;i<=9;i++){if(len==0&&i==0)continue;//特判第一位为零if(vis[i])continue;//保证没被使用过vis[i]=1;//标记dfs(len+1,step*10+i,goal);//继续递归vis[i]=0;//回溯}}signedmain(){scanf("%d",&q);zhi();for(inti=1;i<=9;i++)dfs(0,0,i);//生成数while(q--){scanf("%lld%lld",&l,&r);printf("%d\n",upper_bound(Genshin.begin(),Genshin.end(),r)-lower_bound(Genshin.begin(),Genshin.end(),l));}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/1185761/

相关文章:

  • 【一线大厂Java面试题合集】第51篇-分布式事务解决方案
  • 07、 Skills定制完整指南:打造专属AI能力包的实战手册
  • 从零构建C++汉字识别引擎:传统CV+ML技术实践与优化
  • 嵌入式Linux SPI驱动调试:从设备树节点到sysfs设备文件的排查指南
  • Qwen2-1.5B_rai_1.7.1_hybrid开发者指南:API接口设计与扩展开发
  • C 语言指针练手:解 4 嫌疑人谋杀案,从冗余到简洁的优化之路
  • Oracle登录失败ORA-01017错误全解析与解决方案
  • 深度学习优化算法解析:从梯度下降到Adam
  • Win11 搭建 Python 开发环境:Anaconda 安装、虚拟环境创建与 PyCharm 集成配置
  • Oracle 分区表增量统计信息收集策略与实战解析
  • 免费B站视频下载工具DownKyi完整使用指南:从入门到精通
  • 佛山本地气动工具售后维修 - 中媒介
  • Pandas多维聚合实战:高效计算均值、标准差与滚动指标
  • 06、 Subagent 子代理完整指南:官方 Subagents、Task 委派与社区代理资源
  • 从入门到精通:Meta-Llama-3.1-8B-Instruct_rai_1.7.1_hybrid提示词工程最佳实践
  • DLSS Swapper实战指南:如何高效管理游戏DLSS版本提升帧率表现
  • C++智能指针核心原理与实战:从RAII到现代内存管理
  • 基于深度学习的肺炎X光影像分类系统开发实践
  • AI生成PPT:从一键生成到工程化工作流的实践指南
  • PoiyomiToonShader常见问题全解析:从安装到高级渲染故障排除
  • 三步免费解锁WeMod完整功能:Wand-Enhancer终极指南
  • 压电扬声器与PIC微控制器的音频警报系统设计
  • FLUX.2-klein-4B-amdnpu震撼发布:AMD NPU上的终极文本转图像模型来了!
  • 工业负载驱动芯片TPD2017FN与TM4C1294微控制器的应用实践
  • NV-Tesseract-AD 2.0性能优化技巧:10个提升检测准确率的方法
  • 如何免费下载B站视频:DownKyi完整使用教程
  • M2 Mac 部署Ubuntu Desktop:从Server到GUI的完整避坑指南
  • WandEnhancer技术深度解析:Electron应用增强框架的架构与实现原理
  • 英雄联盟战绩查询神器:Seraphine让游戏决策变得如此简单
  • TS2007FC音频放大器与PIC18F47Q10的低功耗音频系统设计