首页 > 其他分享 >解题思维

解题思维

时间:2024-07-18 21:07:06浏览次数:18  
标签:二分 思维 可以 解题 单调 答案 考虑 dp

拿到一道题,先审题:
题目中会有关键的语句,提示你往哪里想。
“询问最大……的最小值”“最小……的最大值”(前者更常见一些) : 考虑二分
棋盘格子,尤其是涉及“相邻”的操作的: 考虑黑白染色跑网络流
对于一个森林,考虑建立一个虚点,把它变成一颗树
对于按指定顺序balabla……,有时考虑倍增
对于一些依赖时间的情况,比如第\(i\)条路在时刻\(i\)开放,或者后来的会覆盖先来的,可以考虑直接倒序枚举,离线处理询问

二分:
可能直接二分答案,也可能二分一个与答案有关的值。
满足单调性的基本都能二分,例如,若……随时间增加单调递增,或者随位置增加单调不降,就二分那个自变量就好了
证明单调性有时候可以感性理解,即“若x成立,x+1一定成立”“x不成立,x-1一定不成立”,如果能证出类似这些的东西,就可以暂且认为它有单调性
二分的时候,不要在值域上二分,可以把值域范围优化到n进行二分。因为答案必然是题中出现的数,所以可以令l = 1, r = n,原数组排序后在数组中二分,这样在check中枚举的时候也不必每次都1-m枚举

容斥:
当出现“至少选一个”等形容时,即若AB均合法,可以选A,或选B,或都选……时,我们发现正着dp很难转移,这个时候可以考虑正难则反,转移一个都没有的方案,再用全集减去它
记得求容斥系数,可以选一个极端情况来求

dfs:
树上dp。倍增。lca。
如果一个点,能对它的答案造成影响的有且仅有它的祖先,可以考虑先搜索再回溯
判断点与点的祖先关系可以考虑欧拉序
有时要考虑换根dp,尤其是时间复杂度比较奇怪的时候
树上背包。树上差分。

DP:
如果有想不出来的题,往dp、递推上想一想
状态,决策,转移方程
状态一定要确保唯一,即当几维的值都定下来之后,对应且仅对应一个情况
先想暴力,再想优化达到正解
考虑循环顺序、预处理

网络流:
看到网格,尤其是和相邻格子相关的,考虑黑白染色,建图,白连源黑连汇,然后建图
判断可不可行,合不合法,可以看最大流能不能跑满,即等不等于预定的答案
不属于集合a就属于集合b,考虑最小割
满足某个条件的基础上要求……最小,考虑费用流

搜索剪枝:
在不合法的第一层统计答案,不要在最后一层统计答案

一些性质:

重心性质:
每个子树大小小于等于树的一半
在根节点所在的重链上
若有两个重心,则必然相邻

标签:二分,思维,可以,解题,单调,答案,考虑,dp
From: https://www.cnblogs.com/Nihachu-33/p/18310449

相关文章

  • buuctf-web 解题过程
    [SUCTF2019]UploadLabs2源码//admin.php<?phpinclude'config.php';classAd{public$cmd;public$clazz;public$func1;public$func2;public$func3;public$instance;public$arg1;public$arg2;publ......
  • 各种图(流程图,思维导图,UML,拓扑图,ER图)简介
    原文链接:https://blog.51cto.com/jiqing9006/3284733流程图1.定义:流程图是对过程、算法、流程的一种图像表示,在技术设计、交流及商业简报等领域有广泛的应用。2.案例  3.计算机语言只是一种工具。光学习语言的规则还不够,最重要的是学会针对各种类型的问题,拟定出有效的解......
  • PC XMind v24.01.14362 解锁版安装教程 (全球领先的商业思维导图软件)
    前言XMind是一款专业的全球领先的商业思维导图软件,在国内使用广泛,拥有强大的功能、包括思维管理、商务演示、与办公软件协同工作等功能。它采用全球先进的EclipseRCP软件架构,是集思维导图与头脑风暴于一体的可视化思考工具,能用来捕捉想法、理清思路、管理复杂信息并促进团队协......
  • 信创学习笔记(四),信创之数据库DB思维导图
    创作不易只因热爱!!热衷分享,一起成长!“你的鼓励就是我努力付出的动力”一.信创学习回顾1.信创内容信创内容思维导图2.信创之CPU芯片架构信创之CPU芯片架构思维导图3.信创之操作系统OS信创之操作系统OS思维导图二.信创之国产数据库DB思维导图用一张图学习......
  • python 解题 洛谷B2021到B2025
    B2021输出保留3位小数的浮点数n=float(input())n=n-0.000000000000001print('%.3f'%n)B2022输出保留12位小数的浮点数m=float(input())print('%.12f'%m)B2023空格分隔输出a=input()b=int(input())c=float(input())d=float(input())print(a,"",b,"......
  • 架构与思维:微服务架构的思想本质
    我们为什么需要微服务架构,它一定是为了解决我们某些问题才出现了。这篇文章我们讨论下微服务架构模式所解决的问题,带来的挑战,以及他的核心思想本质。1早期的服务架构上图是一个典型的服务分层架构:Client:调用方是browserweb或者App应用层:实现计算层的业务逻辑,从上游数据层......
  • 信创学习笔记(三),信创之操作系统OS思维导图
    创作不易只因热爱!!热衷分享,一起成长!“你的鼓励就是我努力付出的动力”title!!#f1c232点击上方蓝色小字即可一键关注!!!!#f1c232创作不易只因热爱!!:::primary!18热衷分享,一起成长!:::^**你好呀,我是卫码士。一个医信行业工程师,喜欢学习,喜欢搞机,喜欢......
  • Equal Cut (AtCoder - arc100_b)(前缀和,思维)
    题目来源:https://atcoder.jp/contests/abc102/tasks/arc100_b?lang=en//题意:将一串数字分为四段,求出每段的总和,怎么分,才能让这四段的各自总和的极差最小?//思路:“实在是想不出来好的算法,只会暴力,当时想的枚举中间的那一刀,然后左右二分,但是感觉也不太好写,毕竟我总是被二分的边界......
  • 计算思维
           ......
  • 火山引擎数智平台赋能火花思维,A/B测试加速创新
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群。 在数字化浪潮下,火花思维凭借其对数据驱动的理解与实践,搭上了业务快速增长的快车。这一效果的背后,离不开火花思维与火山引擎数智平台的深度合作。通过引入火山引擎的DataFinder和DataTeste......