C++信奥教学PPT:CSP_J_算法之双指针算法(中)
























1、⼀个⻓度为 n-1 的递增排序数组中的所有数字都是唯⼀的,并且每个数字都在范围0~n-1 之内。在范围 0~ n-1 内的 n 个数字中有且只有⼀个数字不在该数组中,请找出这个数字。

2、循环最大值(Maximum in the Cycle of 1, North America-Greater NY 2011,LA5807)如果P是整数序列1~n的一个排列,定义P中1循环最大值为P(1), P(P(1)),P(P(P(1)))...的最大值。例如,假如P是如下的排列:|1 2 3 4 5 6 7 8||3 2 5 4 1 7 8 6|那么有:P(1)=3,P(P(1))=P(3)=5,P(P(P(1)))=P(5)=1。所以1循环最大值为5。对于给定的n(1≤n≤20)和k(1≤k≤n),输出n的所有排列中1循环最大值为k的排列的个数。使用双精度浮点数double输出结果。

3、疯狂的兽医(Mad Veterinarian, North America-Greater NY 2012, LA6178)有个疯狂的兽医开发了一个机器,可以把1种动物转换成其他的1种或者多种动物,并且可以反向转换。例如,有3个机器A、B、C:□ A可以把1个蚂蚁(a)变成1个海狸(b)。□ B可以把1个海狸(b)变成1个蚂蚁(a)、1个海狸(b)和1个美洲狮(c)。□ C可以把1个美洲狮(c)变成1个蚂蚁(a)和1个海狸(b)。我们能把一个海狸和一个美洲狮变成3个蚂蚁吗?是的:{b,c} C→{a,2b}-A反向→{2a,b} A反向→3a。能把1个蚂蚁变成2个蚂蚁吗?否。转换规则如下:(1)在正向模式下,每个机器都可以把1种动物变成有限非空的一个动物集合,动物的种类都是固定的。(2)每个机器都可反向操作。(3)每一种动物都有一个机器在正向模式下把它作为输入。给出初始和目标的动物集合以及其中每种动物的数量,计算能否把初始集合变成目标集合,正向和反向转换都可用。并且需要找出最短的转换路径,本题中只有3种机器A、B、C。

相关推荐
2601_970703834 分钟前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
心中有你02144 分钟前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
心疼你的一切20 分钟前
Python自动发邮件实战定时发报表
大数据·开发语言·python
ZhengEnCi1 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶
人工智能·算法·llm
Wang's Blog1 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
会编程的小孩1 小时前
C++ 定时器
c++
Flynn Liang1 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai
liminla!2 小时前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
中科三方2 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php
沫璃染墨3 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html