随笔分类 -  神奇的做法

摘要:题面 GarsiaWachs算法专门解决石子合并问题: 设一个序列是A[0..n-1],每次寻找最小的一个满足A[k-1]<=A[k+1]的k,那么我们就把A[k]与A[k-1]合并,并向前寻找一个第一个超过他们的和的数,把这个数插入到他后面; 阅读全文
posted @ 2019-10-29 15:44 神之右大臣 阅读(198) 评论(0) 推荐(0)
摘要:题面 首先发现:一个数最多会出现1次; 然后深入推出:一个数不会既用它又用它的相反数; 这样就可以依次考虑每一位了: 如果所有的数都不含有这一位,那么就直接把所有的数除以2 如果含有,那么就减去这一位的数,再除以2; 2 当含有的时候搜索就可以了; 注意需通过去重来优化dfs,否则会TLE掉; 阅读全文
posted @ 2019-10-23 19:18 神之右大臣 阅读(288) 评论(0) 推荐(1)
摘要:题面 题面说的乱糟糟的看起来似乎是个可持久化线性基; 然而~ 一个式子搞定一切: a^b<=a+b 那么把所有数异或起来便是答案; 阅读全文
posted @ 2019-09-26 13:15 神之右大臣 阅读(144) 评论(0) 推荐(0)
摘要:题面 因为所求的是中位数,所以考虑改变原序列。把大于 b 的数全部变为 1,小于 b 的数变为 −1,等于 b 则为 0。问题就变为求存在几个包含 b的区间和为 0 。 根据乘法原理,我们枚举每一个l[i],求出l[i]*r[-i]后累加到ans上; 因为数组的下标不能是负数,所以把所有下标都加上1 阅读全文
posted @ 2019-09-11 17:45 神之右大臣 阅读(141) 评论(0) 推荐(0)
摘要:题面 思路一:纯模拟。(暴力不是满分) 思路: 1、定义一个二维数组。 2、根据每个数据给二维数组赋值。 3、最后输出那个坐标的值。 思路二(正规思路): 逆序找,因为后来的地毯会覆盖之前的,一发现有解就输出 阅读全文
posted @ 2019-07-31 10:10 神之右大臣 阅读(269) 评论(0) 推荐(0)