随笔分类 -  递归与递推

摘要:Googol字符串 “0/1字符串”是一个字符串,其中每个字符都是 0或 1。 有两个操作可以在 0/1字符串上执行: switch:把 1都变为 0,0都变为 1。例如,100 变为 011。 reverse:字符串反转。 例如,100 变为 001。 考虑这个 0/1 字符串的无限序列: S0= 阅读全文
posted @ 2023-03-07 13:12 Keith- 阅读(69) 评论(0) 推荐(0)
摘要:点击查看代码 #include<stdio.h> typedef long long LL; const int N = 1e6 + 10; LL f[N]; void init(){ f[1] = 1;f[2] = 2;f[3] = 3; for(int i = 4; i < N; i ++ )f 阅读全文
posted @ 2023-01-03 16:31 Keith- 阅读(30) 评论(0) 推荐(0)
摘要:简单斐波那契 以下数列 0 1 1 2 3 5 8 13 21... 被称为斐波纳契数列。 这个数列从第 $3$ 项开始,每一项都等于前两项之和。 输入一个整数 $N$,请你输出这个序列的前 $N$ 项。 输入格式 一个整数 $N$。 输出格式 在一行中输出斐波那契数列的前$N$项,数字之间用空格隔 阅读全文
posted @ 2022-12-08 22:54 Keith- 阅读(43) 评论(0) 推荐(0)
摘要:带分数 $100$ 可以表示为带分数的形式:$100=3+$ $\frac{69258}{714}$ 还可以表示为:$100=82 +$ $\frac{3546}{197}$ 注意特征:带分数中,数字 $1∼9$ 分别出现且只出现一次(不包含 $0$)。 类似这样的带分数,$100$ 有 $11$ 阅读全文
posted @ 2022-12-08 22:30 Keith- 阅读(316) 评论(0) 推荐(0)
摘要:递归实现组合型枚举 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。 输入格式 两个整数 n,m ,在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比 阅读全文
posted @ 2022-12-07 00:08 Keith- 阅读(72) 评论(0) 推荐(0)
摘要:谁作案了? 问题描述: 某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析: 至少1个人作案; A、E、F这3个人中至少2个人参与作案; A、D不可能是同案犯; C或B同时作案,或都与本案无关; C、D中有且仅有1个人作案; 如果D没有参与作案,则E也不可能参与作案 请找出作案人。 思路 推理已知正确答 阅读全文
posted @ 2022-12-06 22:16 Keith- 阅读(79) 评论(1) 推荐(0)
摘要:递归实现排列型枚举 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。 数据范围 1≤ 阅读全文
posted @ 2022-12-06 21:05 Keith- 阅读(65) 评论(0) 推荐(0)
摘要:递归实现指数型枚举 从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数 n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。 对于没有选任何数的方案,输出空行。 本题有自定义校验器(SPJ),各行(不同方案)之间 阅读全文
posted @ 2022-12-06 11:57 Keith- 阅读(55) 评论(0) 推荐(0)