解决思维题的一些自我总结

news2025/1/19 8:08:21

目录

常见思维题类型

排序

区间问题

01串串

字符串串

位运算

gcd 与 lcm

质数相关

二元组


常见思维题类型

思维题很多都可以说是贪心、但贪心种类很多,具体怎么贪,重要的还是在于积累经验吧...有些东西也很难总结,以下算是我的碎碎念....

思维题需要你去找到题目的提示信息,找到数据的特性,然后通过这些特性去推导可能的方法。

从特例入手,去推导一般,多尝试,多画图

排序

按大小排序、erase排序去重、按余数排序、按结构体排序、排序后反排序、优先队列、set

更多在于技巧吧...

区间问题

包含某个连续区间的个数 == (区间左侧元素个数 + 1) * (区间右侧元素个数  + 1)

一个数组的全部连续子区间和 → 算出每个数重复几次加和 → 每个数的权重 = (左边个数+1) * (右边个数+1)

01串串

区间翻转(翻转次数奇偶)、非递增子序列(0或1的特定位置)、双指针、动态维护、0或1个数前缀和、单调性、二分答案.....

bitset、cnt计数器、位运算

字符串串

查找、转化、移动...

bitset<52>

if ( find() == string::npos ){ }

map<string,int>mp   mp[x]++

set存放对应字母位置,通过多个set的迭代器改动实现字母交换位置

位运算

‘ & ’、‘ | ’、‘ ^ ’

对于位与操作(&)

与上的越多越容易变小,0 & 任何数 == 0 

对于位或操作(|)

或上的越多越容易大

对于异或操作(^)

a ^ b 与( a & b 或 a | b )的比较入手、线性基、Trie树...

二进制形式、bitset

左移快速取2的幂(1<<32 == 2^{32})、右移快速除2的幂(45>>2 == 45 / 4)

快速幂

取一个数的最低位——lowbit( x ) == x & -x

gcd 与 lcm

gcd(a,b) == gcd(b,a%b)

gcd(a,b) == gcd(a - b,b)

gcd(a + k,b + k) == gcd(a,b - a)

gcd(a,b) == 1,a 与 b 互质

lcm(a,b) == a * b / gcd(a,b)

lcm(a,b)* gcd(a,b) == a * b

质数相关

唯一分解定理、2是唯一偶质因数、埃氏筛、欧拉筛(判断以及统计每个数的最小质因数)

二元组

双指针、计数

map<int,int>mp   ans += mp[x]++ 

数组内两两求差的绝对值→排序后 → 组中的每一个数都要被他后边的所有数减

sum += ( 第 i 位后边的所有数的和 ) -  第 i 位 *( 第 i 位后边数的个数 )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1293642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正则表达式:深度解析与实用指南

目录 引言 正则表达式的基本概念 1. 字面量字符 2. 元字符 3. 量词 4. 分组和捕获 正则表达式的语法规则 1. 字符类 2. 转义字符 3. 锚点 4. 向前查找和向后查找 实际应用中的正则表达式技巧 1. 邮箱验证 2. URL 提取 3. 电话号码格式化 高级正则表达式技巧 1.…

阿里云 ACR 制品中心 AI/大数据镜像专场上新推荐榜

今天&#xff0c;AI 领域的快速发展不仅需要算法的突破&#xff0c;也需要工程的创新。随着容器技术和服务在企业的应用程度不断加深&#xff0c;企业对于容器的使用也越来越多地从在线业务逐渐向 AI、大数据类型的工作负载发展。同时&#xff0c;开发人员在考虑如何通过云原生…

主动而非被动:确保网络安全运营弹性的途径

金融部门处理威胁的经验对网络安全领域的任何人都有启发——没有什么可以替代提前摆脱潜在的风险和问题。 从狂野西部的银行劫匪到勒索软件即服务 (RaaS)&#xff0c;全球金融生态系统面临的威胁多年来发生了巨大变化。技术进步带动了金融业的快速发展&#xff0c;从现金交易到…

node.js和浏览器之间的区别

node.js是什么 Node.js是一种基于Chrome V8引擎的JavaScript运行环境&#xff0c;可以在服务器端运行JavaScript代码 Node.js 在浏览器之外运行 V8 JavaScript 引擎。 这使得 Node.js 非常高效。 浏览器如何运行js代码 nodejs运行环境 在浏览器中&#xff0c;大部分时间你所…

工业4G路由器助力轨道交通城市地铁实现数字化转型

随着城市的科技不断发展&#xff0c;地铁系统的智能化程度也在不断提高。地铁闸机的网络部署已经成为地铁建设中必不可少环节。而4G路由器作为地铁闸机的网络通讯设备&#xff0c;助力轨道交通地铁闸机实现数字化转型。 工业4G路由器在地铁系统光纤宽带网络遇到故障或其他问题…

模式串匹配和字符串哈希

目录 一、字符串暴力匹配 二、字符串哈希解决匹配问题 不使用哈希的递归版本 使用哈希的版本 不太懂哈希表的可以看我上一篇文章。 哈希表及其基础&#xff08;java详解&#xff09;-CSDN博客 一、字符串暴力匹配 public class SubstringMatch {//构造函数设置成私有的&…

echarts图之 底部滚动横轴 缩放图形大小

//折线图-堆叠面积图function pileLineChart(odata, dom){//放大缩小的代码startvar dataZoom [],y240;if(odata.xData.length > 7){dataZoom [{show: true,realtime: true,startValue:0, endValue:5,left:"center",top:"auto",right:"auto"…

探索人工智能领域——每日20个名词详解【day11】

目录 前言 正文 总结 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &#x1f4e3;如需转载&#xff0c;请事先与我联系以…

Python Nuitka打包指南

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python Nuitka打包指南&#xff0c;全文2100字&#xff0c;阅读大约8分钟。 在Python应用程序开发中&#xff0c;打包是将代码和依赖项组合成可执行文件或库的关键步骤之一…

Linux操作系统下对文件的管理

文件的初步理解 C语言中我们了解过一些有关文件处理的函数&#xff0c;如&#xff1a;fopen、fclose、fread……这些函数其实都是封装了系统调用接口&#xff0c;从而利于我们直接使用。 认识文件 了解文件之前我们必须知道&#xff1a;文件内容属性。文件的属性标识着文件的…

混沌映射初始化种群与随机初始化种群初始种群分布图对比

自行切换混沌映射&#xff0c;代码如下&#xff1a; Lb -1; % 搜索空间下界 Ub 1; % 搜索空间上界N_iter 500; % 最大迭代次数 N 30; % 种群个数 dim 2; % 种群维度 Z zeros(N, dim);% 随机生成一个d维向量 Z(1, :) rand(1, dim);% 利用logistic生成N个向量 for i…

【51单片机系列】矩阵按键介绍

本节实现的功能是&#xff1a;通过开发板上的矩阵键盘控制静态数码管显示对应的键值0-F。 文章目录 一、矩阵按键介绍二、硬件设计三、软件设计 一、矩阵按键介绍 独立键盘与单片机连接时&#xff0c;每一个按键都需要单片机的一个I/O口。若某单片机系统需要较多按键&#xff…

QT----Visual Studio输入中文报错,常量中有换行符

问题描述 在VS中写qt时发现在标题中输入了中文直接把报错无法运行 解决方法1 修改文件的编码方式。在VS菜单栏 工具->自定义-》命令-》选择文件-》添加高级保存选项命令。 双加选中添加中文的文件&#xff0c;文件-》高级保存选项-》修改utf-8就可以运行了 解决方法2…

用C语言的循环嵌套打印菱形

这是用循环弄出来的&#xff0c;看的时候可以列一个表&#xff0c;将空格&#xff0c;要打印的*数&#xff0c;行数对应出来&#xff0c;因为里面涉及到一些数学公式&#xff0c;写出来的话方便观察&#xff01; #define _CRT_SECURE_NO_WARNINGS 1//C语言中用scanf可能会警告&…

【K8S】Hello World

文章目录 1 搭建本地测试环境1.1 安装 docker和 Colima1.2 安装 minikube1.3 启动minikube1.4 安装 kubectl1.5 注册 docker hub镜像仓库 2 k8s核心资源概念2.1 Pod2.2 Deployment2.3 Service2.4 Ingress 参考资料 1 搭建本地测试环境 本文以 mac os为例 1.1 安装 docker和 C…

Day53力扣打卡

打卡记录 重新规划路线&#xff08;dfs&#xff09; 链接 class Solution:def dfs(self, x: int, parent: int, e: List[List[List[int]]]) -> int:res 0for edge in e[x]:if edge[0] parent:continueres edge[1] self.dfs(edge[0], x, e)return resdef minReorder(se…

Android 11.0 MTK Camera2 设置默认拍照尺寸功能实现

1.前言 在11.0的系统rom定制化开发中,在mtk平台的camera2关于拍照的一些功能修改中,在一些平台默认需要设置最大的分辨率 来作为拍照的分辨率,所以就需要了解拍照尺寸设置流程,然后来实现相关的功能 如图: 2.MTK Camera2 设置默认拍照尺寸功能实现的核心类 \vendor\me…

Terraform实战(二)-terraform创建阿里云资源

1 初始化环境 1.1 创建初始文件夹 $ cd /data $ mkdir terraform $ mkdir aliyun terraform作为terraform的配置文件夹&#xff0c;内部的每一个.tf&#xff0c;.tfvars文件都会被加载。 1.2 配置provider 创建providers.tf文件&#xff0c;配置provider依赖。 provider…

AUTOSAR 入门

前言 AUTOSAR是什么Vector DaVinci 工具功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必…

nodejs微信小程序+python+PHP的智能停车系统-计算机毕业设计推荐django

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…