
思维训练题
思维题汇总
一只可爱的小猴子
即使再小的帆也能远航,无论什么时候都要保持自信
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
隐藏字符串(思维题)
所以统计长度大于2的子串长度出现次数,相当于统计长度为2的子串出现的次数(问题的转换之处,很关键,有时候题目专门给出了等差数列这个条件,肯定是有用的,没有用到,也有可能解法偏了,可以引以为鉴)f[i,j]记录前i个字符中字符str[i,j]出现的次数,可以根据确定j,累计前j个数中,单字符出现的次数快速计算。如果子串长度大于2,已知第一个字符和第二个字符的位置,就可以确定该子串(因为首项和公差确定等差数列)所以只需要统计所有长度为1的子串出现的次数以及所有长度为2的子串出现的次数。原创 2023-02-12 20:57:16 · 183 阅读 · 0 评论 -
最长非递减子序列 (dp思维题)
既然需要翻转成递增,则翻转段一定成递减,呈11…翻转后的序列一定呈11111…原创 2023-02-12 17:01:52 · 145 阅读 · 0 评论 -
整点和圆(解题思路加代码实现)
【问题描述】在一个平面直角坐标系中给定n个整点,分别以每个整点为圆心,画一个半径为r的圆,请你求出以哪个整点为圆心画的圆包含的整点最多,输出这个值。【输入形式】第一行输入两个整数n和r,分别表示整点的数量和半径的值接下来n行每行输入两个整数x,y,分别表示整点的横坐标和纵坐标【输出形式】输出以给定的n个整点中的某个点为圆心画一个半径为r的圆所能包含的最大整点数【样例输入】3 20 00 22 0【样例输出】3【样例说明】以(0,0)这个点为圆心画一个半径为2的圆,可以包含3个点原创 2021-12-25 11:05:27 · 1253 阅读 · 0 评论 -
特别的数字(解题思路 +代码实现)
【问题描述】定义一种特别的数字,它的左半部分和它的右半部分完全一样,例如2020,它的左半部分和右半部分都是20,是一个特别的数字。注意:数字202不是特别的数字,数字2112也不是特别的数字。现在请你求出区间[1,n]的这n个数中,有多少个特别的数字。【输入形式】输入整数n。【输出形式】输出一个整数,表示区间[1,n]的这n个数中特别的数字的数量。【样例输入】22【样例输出】2【样例说明】[1,22]这22个数中,只有11和22是特别的数字,因此输出2【评分标准】对于20%的原创 2021-12-25 21:22:51 · 1578 阅读 · 0 评论 -
202112-2 CCF 序列查询新解 (枚举 + 分段讨论 满分题解)
所以我们可以在f(x)相等的这一段内,再根据g(x)相等进行划分段,这样划分出来的段,求和做差 == abs(f(x) - g(x))在f(x)相等的这一段内,再根据g(x)相等进行划分段,可能存在长度不等于r的段(首尾会出现),所以要计算这个段还剩几个。又由于f(x)相等的这一段内,g(x)有可能既有比f(x)小,又有比f(x)大的情况,所以直接累加求差是不可取的。再看g(x)这个函数,g(x)= x / 常数,也可以知道,g(x)也是单调递增的。计算出还剩多少个时,要判断是否超出f(x)的长度范围。原创 2022-09-08 18:36:19 · 1255 阅读 · 0 评论 -
LeeCode《可以读通讯稿的组数》ac题解
计算结果时,只需要从每一队数字中取出两个数字即可,排列组合的知识,就是计算C(n, 2)你就会发现 镜像数字 - 数字本身 的结果相等的数字是可以进行组队的。例如这道题目,如果要两两数进行组队,再判断,肯定会超时的。所以就不要一直想着怎样使两两数组队了。那么只需要将这些数字集中在一起。【17,28】可以组队。原创 2022-08-23 09:30:24 · 559 阅读 · 0 评论 -
编程思维题练习:奶牛摄影 (思维转换)
思维总结五个状态判断最初始的状态,从思考任意两头牛之间的相对次序,牛只可能变动一次,五次里面只有可能最多出现两次逆序的情况,因此只要统计五次中两头牛出现的相对次序出现三次及以上的次序即是最初次序利用次序先后作为比较依据,重载cmp,进行排序,即可得到最初次序题目描述代码描述...原创 2022-06-20 10:44:30 · 267 阅读 · 0 评论 -
CCF 出行计划(满分代码 + 解题思路)2022-03-2
解题思路题意就是给你一个做核酸的时间,计算能出行的计划个数有n个计划,m个时间询问,如果暴力求解,对于每一个询问时间,遍历每一个计划看能否出行,则时间复杂度是10亿,会超时,只能拿70分然后我的解题思路是利用差分,首先对于每一个计划,计算应在哪个时间段内做核酸使得该计划能成功通行,让该时间段上的通行数都加一所以我们需要开辟一个数组来记录每个时间能通行的数量当遍历完所有通行计划后,对差分数组进行还原成原始数组就可以利用数组下标直接得到询问的结果代码实现#include <io..原创 2022-04-04 12:42:16 · 5755 阅读 · 9 评论 -
编程思维题练习:放养但没有完全放养 (思维转换)
思维总结判断这串字符循环了几次,可以根据相邻字符是否逆序快速判断循环次数是否加一如果后一个字母的位置小于等于前一个字母,则需要将循环次数加一题目描述代码描述#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 30;int p[N];int main(){ string str; cin &g原创 2022-03-21 16:15:55 · 331 阅读 · 0 评论