洛谷P1218-[USACO1.5]特殊的质数肋骨 Superprime Rib (DFS)

蓝桥杯:特殊的质数肋骨(逐渐去掉低位仍是质数的数,特殊质数)递归解法 蓝桥杯:特殊的质数肋骨(逐渐去掉低位仍是质数的数,特殊质数)递归解法 问题描述 农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数。 例如有四根肋骨的数字分别是:7 3 3 1,那么全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 7... 阅读详情

思路:将数位一位一位加,一旦发现不是质数就跳过,否则继续递归下一位

例子:

5->51(跳过);

5->53(可以);

5->57(跳过);

5->59(可以)。

就是↓

    int x = m * 10 + 1;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 3;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 7;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 9;
    if (pd(x)) dfs (t + 1, x);

得出的规律:在开头只能添加1,2,3,5,7四个数;在中间及末尾只能添加1,3,7,9四个数

    dfs (2, 2);
    dfs (2, 3);
    dfs (2, 5);
    dfs (2, 7);

如果在中间添加5则会变成5的倍数


代码:

#include <bits/stdc++.h>

using namespace std;

int n;

bool pd (int t) { //判断质数
    if (t == 2) return true;
    if (t % 2 == 0) return false;
    for (int i = 3; i * i <= t; i++) {
        if (t % i == 0) return false;
    }
    return true;
}

void dfs (int t, int m) {
    if (t > n) { //【恭喜这个数挑战成功】这个生成的数够n位了,输出这个数
        cout << m << endl;
        return; //返回
    }
    //中间位只能是1、3、7、9
    int x = m * 10 + 1;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 3;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 7;
    if (pd(x)) dfs (t + 1, x);
    x = m * 10 + 9;
    if (pd(x)) dfs (t + 1, x);
    return;
}

int main () {

    cin >> n;
    //第一个数是接下来要选的数位,第二个数是第一个数位中的数的选择
    //    ↓
    dfs (2, 2);
    dfs (2, 3);
    dfs (2, 5);
    dfs (2, 7);

    return 0; //结束
}
C++质数肋骨 题解 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;而后面的数字则是不可以选择偶数,只能选择(1,3,5,7。写一个程序对给定的肋骨的数目 N(1≤N≤8), 求出所有的特殊质数。其原因是dfs的时间复杂度过于的大了,因此我们要考虑进行剪枝来降低它的时间复杂度。其中特殊质数的条件是从右边开始删除位数,每次还剩下的数字都组成一个质数。按顺序输出长度为 N 的特殊质数,每行一个。 阅读详情

相关推荐

题解:洛谷 P1218 [USACO1.5] 特殊的质数肋骨 Superprime Rib

举例来说:7 3 3 1 全部肋骨上的数字 7331 是质数;当然,最后一根肋骨 7 也是质数。7331 被叫做长度 4 的特殊质数。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数。农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。的"特殊质数"——从最高位到最低位逐位截断后得到的每个前缀都是质数。,求出所有的特殊质数。写一个程序对给定的肋骨的数目。的特殊质数,每行一个。#普及- #DFS-一维。

团爸讲算法 158

特殊的质数肋骨(C++实现)

题目描述 农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数。 例如有四根肋骨的数字分别是:7 3 3 1,那么全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。7331 被叫做长度 4 的特殊质数。 写一个程序对给定的肋骨的数目 N (1< =N< =8)

Edwinwzy的博客 2383

PIDNet实战:如何在Cityscapes数据集上实现93.2 FPS的实时语义分割(附完整训练代码)

本文提供了在Cityscapes数据集上实现实时语义分割模型PIDNet的完整工程实践指南。PIDNet凭借其独特的比例-积分-微分三分支架构,在CVPR 2023上取得了速度与精度的出色平衡。文章详细介绍了从环境配置、数据预处理、模型训练到性能优化与部署的全流程,并分享了实现93.2 FPS高推理速度的关键技巧与代码。

weixin_29047919的博客 375

特殊的质数肋骨 题解 二维vector 或者二维数组

原题链接题目 1544: 蓝桥杯算法提高VIP-特殊的质数肋骨 题意解读 有一组肋骨 我们暂定有四根肋骨 每根肋骨上有一个数字 好现在我们假定有四根排骨了 数字为 7 3 3 1 我现在要拿走卖掉 每次拿一根 从右边1拿走 现在要求我从右到左每拿走一块肋骨 剩下的肋骨组成的数都要是质数 比如一开始我什么也没拿 也要是质数 (7331) 拿走一块1 还剩733 733仍要是质数 再拿走一块3 还剩73 73是质数 拿走3 还剩7 7 是质数 题目要求肋骨根数为N时 求出所有的符合条件的数(长度为N)

qq_20072825的博客 353

Unity性能优化 - 动态图集

Unity 动态图集是 Unity 引擎中用于处理游戏纹理优化的一种技术。本文介绍了什么是动态图集,动态图集的优缺点,以及提供了一套完整的代码供大家参考。

qq_33808037的博客 4840

3A之自动对焦(AF)算法:从Tenegrad到拉普拉斯的清晰度评价实战

本文深入解析自动对焦(AF)算法的核心——清晰度评价函数,通过实战对比Tenegrad、方差、能量梯度、Brenner和拉普拉斯五大经典算法的原理、代码实现与性能。文章详细阐述了各函数在计算速度、抗噪性和单峰性上的优劣,并提供了从仿真测试到硬件部署的优化策略,帮助开发者根据实际场景选择最合适的AF算法。

weixin_29281915的博客 314

特殊的质数肋骨

算法提高 特殊的质数肋骨                                                                                      时间限制: 1 Sec  内存限制: 128 MB 题目描述 农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真

moonlight的博客 1594

YOLOv11与Roboflow数据预处理实战:从原始数据到高性能模型

摘要 Roboflow平台与YOLOv11的结合为计算机视觉开发者提供了高效的工作流。Roboflow提供数据集管理、预处理、增强和导出的一站式解决方案,支持多种标注格式并与YOLOv11无缝集成。YOLOv11在YOLO系列基础上进行了架构创新,包括深度宽度优化、C3k2机制和C2PSA注意力机制,提供从纳米版到超大版的多种模型变体。 使用Roboflow的流程包括:注册工作区、收集/导入数据(支持本地和公开数据集)、专业标注(含SAM辅助)、预处理(尺寸调整、归一化等)和数据增强(几何变换和颜色调整)。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 352

【代码超详解】CometOJ C0275 [USACO]特殊的质数肋骨(质数的判定 + 枚举 + 剪枝)

一、题目描述 1000 ms,256 MB 二、算法分析说明与代码编写指导 N 的范围是 1 到 8,当 N = 8 时,需要验证并列举 10000000 到 99999999 的全部“特殊质数”,直接暴力枚举会超时。 一种方法是:当 N 比较大的时候,只对高位(这里选高 5 位)枚举质数,然后进行验证。当然验证过程不能直接模拟题目所说的“从右边开始切下肋骨”的过程,因为判定较大数的素性是比较费...

COFACTOR 435

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3482

SE模块理解+SE-Resnet模块pytorch实现

文章目录SE模块理解SE实现注意力机制原因SE-resnet网络pytorch实现定义residual定义SE模块 SE模块理解 SENet是Squeeze-and-Excitation Networks的简称,拿到了ImageNet2017分类比赛冠军,其效果得到了认可,其提出的SE模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中。SENet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一点计算量,但是效果比较好。 SE模块广泛应用于去噪,去雨方向,利用SE模

qq_42754919的博客 2万+

洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 使用四种算法

洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 水题一道…… 题目描述 农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 ...

weixin_30851409的博客 209

C#上位机开发:西门子/三菱PLC通信,新手直接上手

对着西门子S7协议文档看半天,连“DB块地址怎么写”都搞不懂;写三菱PLC代码时,分不清MC协议和Modbus的区别,代码改来改去连不上;好不容易跑通代码,换个PLC型号又报错,不知道哪里出问题;后来发现,新手学PLC通信根本不用先啃协议文档——先跑通“能通信”的代码,再慢慢理解底层逻辑,效率至少提升3倍。西门子PLC:用S7NetPlus库(新手最友好),实现以太网通信,支持S7-200 SMART/1200/1500;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 884

洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib

P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib 题目描述 农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三...

HJ921004的博客 199

Java炫酷烟花③(完整代码)

Java语言实现炫酷烟花动画的完整代码。 下载代码 下载链接:我是一只有趣的兔子,感谢你的喜欢。

AIGC 784

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

洛谷P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib

题目描述 https://www.luogu.org/problemnew/show/P1218 我以为这个题也可以用埃氏筛法来做,但位数太大,boom,空间爆了。 其实就直接搜就行了,由题意能知道,这些数是不含有偶数的,第一位也一定是质数,这样能提高效率。 #include<iostream> #include<cstring> #include<cstdio&gt...

ETwinner的博客 335

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【洛谷 1218】[USACO1.5]特殊的质数肋骨 Superprime Rib

题目描述农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。写一个程

LOI_Sherlock 498

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

c语言特殊的质数肋骨,洛谷 P1218 — [USACO1.5]特殊的质数肋骨 Superprime Rib

浏览量:314题目描述农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特...

weixin_35718671的博客 356

c语言特殊的质数肋骨,[蓝桥杯][算法提高VIP]特殊的质数肋骨 (C语言代码)打表...

解题思路: 先用暴力的方法把结果全部跑出来,然后打表输出就可以了,其它方法没想到QWQ参考代码:#includeintmain(){inta[9][17]={{0},{3,2,3,5,7},{8,23,29,31,37,53,59,71,73,79},{13,233,239,293,311,313,317,373,379,593,599,719,733,739,797},{15,2333...

weixin_35639230的博客 329

洛谷P1218 特殊的质数肋骨

题目描述求出n位数中满足条件的数字,去除首位,每次还剩下的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。 输入样例:4 输出样例:2333 23

qq_34593871的博客 574

洛谷 P1218 特殊的质数肋骨

特殊的质数肋骨题目描述输入输出格式输入样例输出样例题目解析代码实现 题目描述 农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后...

蒟篛小渣渣 684

打卡信奥刷题(135)用C++信奥P1218[普及组/提高] [USACO1.5] 特殊的质数肋骨 Superprime Rib

农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数。7331全部肋骨上的数字7331是质数;三根肋骨733是质数;二根肋骨73是质数;当然,最后一根肋骨7也是质数。7331被叫做长度4的特殊质数。写一个程序对给定的肋骨的数目n,求出所有的特殊质数。1不是质数。

Loge谈信奥--一个专注于信奥人的博客 2515
上一篇: 递归与调用【简单版】
下一篇: 洛谷P1181 数列分段 Section I_____经典题目
Runcode8
博客等级 码龄4年 180粉丝 56原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值