好题思路集汇

慢慢地发现每次打题解会很麻烦而且费时间,这篇博客留作思路汇总,给自己警醒。

游戏 (模拟36)

  某天T3,思路难点在于把每个状态的点区分出来,也就是拆点,然后在给不同状态的点连边,进行最短路操作。

  对于图上需要操作走动的点来说,往往不同的状态之间转移会很困难,在实现过程中也很难实现,不如把不同状态的点拆成多个状态互不影响的点,在分别考虑其转移条件,然后在区分对待,这样会使不同状态之间的考虑化简,之后考虑好状态之间的转移就可以了。

  题目思路挺不错的。

影子 (模拟41)

  并查集+lca找两点距离。

  这题的并查集用的很巧妙,将点权从大到小排序,用并查集维护点集,点集中点权最小的点为当前枚举到的点。

  然后有一个很巧妙的思路,维护当前点集的直径和该直径对应的两个端点,当我们搜到合并两个点集的时候,将端点两两结合,有四种情况,在加上两个点集本身的直径取最大,就是在当前点的最优答案。新点集的直径的端点一定属于上述四个端点之一,正确性可以反证法证明。

  注意点集一定要合并,情况要考虑全。

夜莺与玫瑰 (模拟41)

  莫比乌斯函数中的mu函数的妙用,4维到1维的优化,用到的等差数列求和。

玫瑰花精 (模拟41)

  线段树在序列上的操作,维护了一些神奇的东西。

  l,r,mid,p,l维护最左边的鸟的位置,r维护最右边的鸟的位置,mid维护距离两只相邻鸟的最长距离,p维护mid值的位置。

  查询只查询根节点1的p值即可,注意与1,p,n的比较。

  删点和插点操作相似,注意多种情况的枚举,也就是左儿子最右边的鸟,右儿子最左边的鸟的关系。

 C (模拟43)

  线段树+贪心+三分。

  这几天的线段树维护一个特定的区间的题挺多的,加上模拟42的T2,可以看一看。

  线段树维护的方法:先保证左端点一定满足条件,再把右端点插进去,找其中的最大or最小的右端点,实现贪心。

  这道题还用到了三分,因为答案关于选特殊的个数是单谷函数。

  至于贪心的证明,还需要再自己考虑考虑。

F (模拟44)

  线段树优化dp。

  这道题dp的思路还不错,毕竟考试的时候想了一个性能比较差的dp。

  然后就是一个线段树优化了。

  其实就是优化掉内层循环,找一下循环里面的性质,这道题是其中的不变量&dp_i-i&和&dp_i+i&,和给整个区间加上的相同的值。

  可以拓展到更多的情况,比如区间减,区间赋值,单点查询,区间查询等。

  具体依据具体性质而定。

kill (模拟45)

  二分+贪心。

  其实二分不难看出来,但是考场上真的有些懵了,二分没看出来,打了个傻逼set。

  然后排序,贪心就行了。

  我们要使每个人的花费最优,而我们在排序的基础上,枚举每个人所在的位置,从左到右找第一个符合条件的位置,因为后面的所有人都不会将我找到的这个位置左边的点作为最优点。

  贪心即可,还有一个小性质,每个小怪兽的固定花费都是不变的,虽然没啥用,但是也是需要积累一下的。

beauty (模拟45)

  题目转化问题很惊喜,自己在转化题目的能力方面做的还是太差了。

  根据题意,很容易想到去找链找最大,但是这显然复杂度不对,然后找性质。

  其实吧,就离正解不远了,但是自己没能突破这一哆嗦。

  当自己卡在某一个思路的时候,想想突破,另辟蹊径,找一下意想不到的地方。

  这道题在找(kan)了n年(bian)性(ti)质(jie)后,会惊喜的发现,可以把每个边对答案的贡献单独拿出来算。

  然后这道题就解决了。

set (模拟46)

  前缀和。

  这道题前缀和不是很难,但是它要求对前缀和的理解和对模的意义有较高要求,总之考试的时候没想到。

  A掉简单想到难。其实主要的还是一个在模n意义下最多只有n个不同的取值,然后就可以断定,一定有一个连续的区间符合条件,然后前缀和就行了。

read (模拟46)

  思路不难但是打死想不到系列。

  性质一:一个序列里最多有一种元素是整个序列的一半以上,减到合法后不会有新的元素种类不合法,可以简单证明。

  然后乱搞就行了,题目卡的地方就是不让开数组,这就需要我们找一个不合法的元素。

  然后“所以我们用两个变量 id, cnt, cnt 初始为 0. 然后生成每一个 A[i], 如果 cnt==0, 那么就令 id=A[i], cnt=1, 否则如果 id==A[i], 则 cnt++, 如不等于 , cnt--. 最后只要再扫一遍求出 id 的出现次数即可 .
  因为如果有书超过 (N+1)/2, 那么就以为这它比其他所有书的和都多 , 那么 cnt 怎么减都不会小于0, 如果没有那 id 随便是哪个都没有关系了 . 最后再求这种书要减少多少个就可以了 .”

  题解抄下来了。

蔬菜 (模拟50)

  二维莫队。

  这道题其实也不是很难,但是考场上确实没想到,一个比较板子的东西。

  莫队的计算也比较简单,总之练了一下莫队。

联盟 (模拟50)

  树的直径综合。

  首先性质,断边肯定在直径上。

  然后就是各种求树的直径的方法了,两遍Dfs求直径,还有就是dp求直径,dp的方法适用与有根树的直径。

 

转载于:https://www.cnblogs.com/LH-Xuanluo/p/11468818.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值