热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

平凡无奇的思维笔记:寻找创意的灵感

一个笨脑瓜仰慕并很努力地追上平常人的能力目录如何做思维题?思维过程以CF1151BDimaandaBadXOR为例1.自顶向下2.自底向上异或:每行取一

一个笨脑瓜仰慕并很努力地追上平常人的能力



目录

  • 如何做思维题?
    • 思维过程
      • 以CF1151B Dima and a Bad XOR 为例
        • 1. 自顶向下
        • 2. 自底向上
          • 异或:
          • 每行取一个:
        • 3. 总结结论,解决问题
  • |x1-x2|+|y1-y2|
  • 贪心
  • 双指针
  • 二分答案
  • 博弈


如何做思维题?


思维过程


以CF1151B Dima and a Bad XOR 为例


1. 自顶向下

1.分析问题的元素:最突出的元素为异或,其次为结果大于零,其次为每行取一个,其次为一个二维数组

2.分析每个元素的特点:

异或:相同取0,不同取1

结果大于零:为什么是零,不是某个数字,如果是零会是什么情况

每行取一个:每行的数字在求解问题中是独立的,在列中是存在关系的(异或关系)

等等……


2. 自底向上

1.分析元素的结论:


异或:

相同的数字异或为零,反之大于零(对应大于零这个元素)
多个数字异或为零不代表所有数字一定相同,但根据上面的结论将一个数字换成一个不同的数,异或结果必大于零


每行取一个:

作用就是换数字,但是有可能所有的数字都是相同的
等等……


3. 总结结论,解决问题

随便找一个选数方案如果结果大于零就可以直接解决问题。但找到了一个为零的选数方案,尝试用其中一个数字同一行的不同的数替换该数字,如果所有数字都找不到对应不同数字(同一行全相同),就解决了问题。


|x1-x2|+|y1-y2|


  1. 二维问题的其中一种思维是x,y相互独立,想到就好做(CF1499C Minimum Grid Path、B Eastern Exhibition)

贪心


  1. 选择i和j且i!=j,a[i]–,b[j]–,求最多操作数
    使a[i]尽可能不为0以便配对有多种选择,每次选择最大和次大(维护优先队列,2e5)

双指针

1.勿默认左指针为主指针,请考虑题意确定主指针。主指针的特点:


  1. 维护较复杂的问题
  2. 变化幅度较小
  3. 次指针维护最值

2.处理答案贡献连续的问题,通常要确定连续边界,第一次满足条件和不满足条件的情况(Unstable String)


二分答案


最大的最小 最小的最大



博弈

玄学奇思妙想就行了
1.递推性:总结出递推过程的特点。


Vasya and Chess
我找到了间隔1列的时候可以“逼”对方过不来,什么特点?
对方所在地棋子无时,对方输了。


2.对称性:图形问题,特别是题目给定开始移动位置对称时。(包括对角对称)


只要和先手对称,就能将当前状态递推到最终状态。



推荐阅读
  • Redis 是一个高性能的开源键值存储系统,支持多种数据结构。本文将详细介绍 Redis 中的六种底层数据结构及其在对象系统中的应用,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。通过12张图解,帮助读者全面理解 Redis 的数据结构和对象系统。 ... [详细]
  • 本文详细介绍了二叉堆的概念及其在Java中的实现方法。二叉堆是一种特殊的完全二叉树,具有堆性质,常用于实现优先队列。 ... [详细]
  • mysql数据库json类型数据,sql server json数据类型
    mysql数据库json类型数据,sql server json数据类型 ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 原文地址:https:blog.csdn.netqq_35361471articledetails84715491原文地址:https:blog.cs ... [详细]
  • 题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ... [详细]
  • Java 基础数据类型及其存储大小与取值范围
    本文介绍了 Java 中的八种基础数据类型,包括 byte、char、short、int、long、float、double 和 boolean,并详细说明了每种类型的存储大小和取值范围。 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • SDWebImage第三方库学习
    1、基本使用方法异步下载并缓存-(void)sd_setImageWithURL:(nullableNSURL*)urlNS_REFINED_FOR_SWIFT;使用占位图片& ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 本文详细介绍了如何对一个整数的二进制表示进行逆序操作。通过多种方法,包括直接法、查表法和分治法,帮助读者全面理解和掌握这一技术。 ... [详细]
  • 我自己做了一个网站图片的抓取,感觉速度有点慢抓取4000张图片可能得用15分钟左右的时间,我百度看用线程可以加快抓取,然后创建了5个线程抓取,但是5个线程是同步执行同样的操作一个图片就 ... [详细]
  • 优先队列是一种特殊的队列,不遵循先进先出原则。它分为最大优先队列和最小优先队列。最大优先队列总是将当前最大的元素优先出队,而最小优先队列则总是将当前最小的元素优先出队。本文将详细介绍如何使用二叉堆在C#中实现这两种优先队列。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
author-avatar
x将臣x
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有