首页 > 其他分享 >20240713总结(搜索专题,但是不想搜索)

20240713总结(搜索专题,但是不想搜索)

时间:2024-07-15 09:11:36浏览次数:8  
标签:20240713 颜色 端点 题解 专题 搜索 答案 但是

A - Dima and Trap Graph

CF366D Dima and Trap Graph
题解:考虑二分满足答案区间,但是发现这个区间并不具有单调性。于是我们考虑固定一个端点(不妨固定左端点),然后二分右端点,此时右端点是有单调性的。

然后思考如何判断是否联通。这题可以直接使用并查集,把在当前判断的区间内的边并起来,最后看看 1 节点和 n 节点是否联通即可。

但是我本人的代码成分复杂,dfs剪枝也有,并查集也有。

B - Salazar Slytherin's Locket

CF855E Salazar Slytherin's Locket
题解:数位DP板子题,没什么好说的。

C - DZY Loves Colors

CF444C DZY Loves Colors
题解:管他那么多,我直接大力分块:

  • 1.对于修改,对于左右端点的块下放tag,把记录块内是否为同色的标记记为false(虽然这个块仍然可能是同颜色的,但是当作不是总没错,整块答案和单点答案都要修改),然后对于中间每一个同颜色的块打tag(记得修改整块答案),对于不是同颜色的块暴力修改
  • 2.对于查询,整块直接加答案,散点不要忘记加上对应块的tag

然后分块比ODT快,但是好像也是颜色段均摊?

D - Distinct Paths

CF293B Distinct Paths
题解:诈骗题,按照题目的意思,若有解,则:(n+m-1<=k),不然颜色就放不下了。

然后考虑搜索,但是肯定不能全部搜完,会TLE。

我是怎么知道的?(去CF找一份AC代码,发现下面的数据答案太大)

k很小,先压缩一个状态表示当前使用过的颜色。然后考虑对于每一个格子,如果没有放过颜色,那么从剩下的颜色中随便放一种本质是相同的,计算一次后直接累加答案即可。

E - The Great Mixing

CF788C The Great Mixing
题解:既然是搜索专题,我自然不会写搜索,但是还是先分析一下题面。

我们发现值域只有1000,却有1e6种汽水?所以先去重。然后把所有浓度减去n,把题目转化为调浓度和为0的汽水。

直接背包,dp[i+maxn]表示浓度和为i的最小消耗的汽水瓶数(因为有负数,统一加一个maxn),但是要注意当前浓度为正数和为负数的转移顺序不一样。

经过测试,数组开6e5,maxn开3e5能过。

F - Rats

CF254D Rats
题解:又是诈骗题,手动模拟发现一个炸弹最多炸到290个左右的老鼠,所以大于600只肯定炸不掉,先判掉。

然后直接从每只老鼠的位置开始搜哪些位置能炸掉这只老鼠,枚举位置,但是别忘了判掉只有一个位置能放炸弹的情况。

标签:20240713,颜色,端点,题解,专题,搜索,答案,但是
From: https://www.cnblogs.com/wangwenhan/p/18302400

相关文章

  • 数据结构专题
    [NOIP2012]借教室可以看到答案是有单调性的,若第i个可以那么第i-1个也可以,就可以二分答案,用差分维护区间加,也可以用树状数组#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong//#definedoublelongdouble#definePIIpair<int,int>constintN=1e6......
  • 二分专题
    二分最重要的就是check函数的编写以及边界的控制1.一定区间的完全平方数个数(除二分以外的简单写法)查看代码cout<<(int)(floor(sqrt(b))-ceil(sqrt(a))+1)<<endl;2.跳石头(为了最大化最小间隙,通过二分跳跃距离,期间通过和撤走石头数量进行比较,来判断此距离是否过短或......
  • 力扣-81. 搜索旋转排序数组 II
    1.题目题目地址(81.搜索旋转排序数组II-力扣(LeetCode))https://leetcode.cn/problems/search-in-rotated-sorted-array-ii/题目描述已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上......
  • 力扣·33. 搜索旋转排序数组
    1.题目题目地址(33.搜索旋转排序数组-力扣(LeetCode))https://leetcode.cn/problems/search-in-rotated-sorted-array/题目描述整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[n......
  • 数据结构第25节 深度优先搜索
    深度优先搜索(Depth-FirstSearch,简称DFS)是一种用于遍历或搜索树或图的算法。DFS从根节点开始,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到上一个节点w,然后探索w的其他未搜索过的子节点。DFS有两种常用的方式:递归方式和非递归方式(通常使用栈来实......
  • 算法奇论——LIS 与打牌有关?看 LIS 的二分搜索解法
    《算法奇论》的第一篇文章啦~~《算法奇论》是作者开创的新的一个专栏,专门收录各种有关于计算机算法学的奇闻异事,欢迎阅读。由于本人仅14岁,知识、经验可能不足,再加上本文进度比较赶,本文可能有勘误或错别字、拼写错误,还请发现者在评论区指出,作者一定在看到评论后第一时间更正,谢......
  • 深度优先搜索+算法设计+python
    一、问题描述小明想知道哪个岛是最大的岛屿,请你用深度优先遍历算法来帮助他。如图所示,为了方便计算,我们使用一个二维数组来表示一片海域,用0表示水面,用1表示陆地,我们的任务是找出其中最大的岛屿。注意,岛屿是指上下左右四个方向相连接的陆地区域。二、问题求解deflargest_is......
  • js 实现二分搜索算法
    二分算法搜索数字二分搜索算法是一种在有序数组中查找目标值的高效方法。其时间复杂度为(O(\logn))。下面是用JavaScript实现的二分搜索算法:functionbinarySearch(arr,target){letleft=0;letright=arr.length-1;while(left<=right){......
  • FOFA网络空间安全搜索引擎的使用
    一、FOFA是什么?FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产。简单来说,FOFA的使用方式类似于谷歌或百度,用户可以输入关键词来匹配包含该关键词的数据。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还包括像摄像头、打印机、数据库......
  • Spark _Exam_ 20240713
    SparkExam20240713Conclusion还可以,没有挂分(反向挂分什么鬼)。数据简直太平洋,T1放掉log,T330变80,T410%的特殊case变成30%的特殊casedp还是很不行,其他方面的思维还可以。A.不相邻集合(a)Statement称可重集合\(S\),若满足\(\forallx\inS,x-1\notinS,x+1\notinS\)......