随笔分类 -  题解

1 2 3 4 5 ··· 18 下一页
摘要:传送门 解题思路 据说是经典思路:把多次排序转化成二分+01序列。 首先二分所求位置的数字是啥,将大于mid的数字变成1,将小于等于mid的数字变成0。 这样在排序的时候就相当于统计区间里的1的个数(区间和),然后区间全部变成0或者1。 也就是区间修改,区间求和,线段树可以实现。 AC代码 #inc 阅读全文
posted @ 2024-05-12 16:35 尹昱钦 阅读(19) 评论(0) 推荐(0) 编辑
摘要:传送门(vjudge) 解题思路 注意到 ai 的范围很小,是1000~2000之间,于是我们可以直观感受到k一定不会特别大,推一下可以得出 k 最多大概在四五百左右,于是可以直接考虑 dp[i][j] 为前 i 个数里面选了 j 个分割点,且第 i 个数是分割点的最小代价。 转移要分两种 阅读全文
posted @ 2024-04-29 17:23 尹昱钦 阅读(13) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 直接二分能干掉的人数,然后check函数枚举所有区间,因为 m 很小,所以可以用 m 个ST表预处理每个区间对应每个属性的最大值。 一是需要注意二分的写法,而是注意check(0)时候的特判。 AC代码 #include<iostream> #include<algorithm> 阅读全文
posted @ 2024-02-29 10:31 尹昱钦 阅读(8) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 把每个国家的城市看成一条链。 那么建桥操作相当于将两条链的某处断开,然后交换断点后面的部分。 查询操作就是从链首开始找到链尾属于哪个国家。 这些操作可以由Splay平衡树来维护。 相当于开n个平衡树。 但是总点数O(NM)会爆炸,所以我们考虑实际用到的点只有O(N+Q),所以每个点 阅读全文
posted @ 2024-02-28 23:39 尹昱钦 阅读(23) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 对于每个人的棋子,总是最高的那个棋子发挥决定性作用,被消耗后,再看剩下的最高的棋子。这就相当于单调不递增栈的维护过程。 最后就要比较两个人的单调不递增栈是否完全相同。 和经典的楼房重建相似,但是这个题不止需要维护单调栈的长度,还要维护哈希值。 我是分开写的,但是实际上可以直接用pa 阅读全文
posted @ 2024-02-27 20:57 尹昱钦 阅读(66) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 动态维护区间里面单调递增斜率的长度 需要维护两个信息:上述长度,和区间最大值(合并时需要) 难点在于两个子区间的合并。 左区间的楼房一定都能看见(没有遮挡),所以要在右区间二分,找到左面最大值 lmax 在右区间的位置,然后进行合并。 复杂度两个log。 AC代码 #include 阅读全文
posted @ 2024-02-25 11:36 尹昱钦 阅读(32) 评论(0) 推荐(0) 编辑
摘要:字符串哈希 [OI-Wiki](字符串哈希 - OI Wiki (oi-wiki.org)) 分为两种哈希方式:以左为高位 和 以右为高位 如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即 \[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\times ba 阅读全文
posted @ 2023-12-03 14:17 尹昱钦 阅读(96) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 关于Prufer序列的构造,见OI-wiki 这里直接放结论: 一个Prufer序列与一个无根树一一对应 度数为 di 的节点在序列中出现了 di1(di1)=n2 n个点的完全图的生成树有 nn2 种 所以相当于 阅读全文
posted @ 2023-11-01 20:55 尹昱钦 阅读(21) 评论(0) 推荐(0) 编辑
摘要:比赛链接 D - Square Permutation 其实比较简单,但是比赛时候脑子不转了,竟然在尝试枚举全排列,然后算了一下复杂度直接不会做了。 正解应该是枚举完全平方数,底数枚举到 sqrt(1014) 即可,因为 n 最大为 13。 然后统计一下这个完全平方数各个数字出现了多少 阅读全文
posted @ 2023-10-15 16:28 尹昱钦 阅读(42) 评论(0) 推荐(0) 编辑
摘要:[比赛链接] A. Don't Try to Count 直接用string的可加性,每次 s+=s 相当于翻倍了,因为 nm<=25 所以最多翻倍5次。 判断什么的直接模拟就行。 #include<iostream> #include<algorithm> #include<cmath> 阅读全文
posted @ 2023-10-15 14:25 尹昱钦 阅读(231) 评论(1) 推荐(1) 编辑
摘要:比赛链接 A - Replace C or Swap AB 个人感觉挺有意思的一道思维题(好久没做思维题了,竟然卡了一个小时)。 除去C不看,我们发现X序列中的A只能向后移动,B只能向前移动,且可以移动任意次数。 所以假如没有C的话,做法是这样的: 从前往后分别统计X和Y序列中的A的数目,若某一时刻 阅读全文
posted @ 2023-10-09 00:02 尹昱钦 阅读(147) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 直接用洛谷题解! 说的好! 怎么求有向图的欧拉路径呢? 如果有起点,从起点出发,然后不断dfs,对每个点记录其出边已经到了哪一条,然后当一个点的出边都遍历完的时候就把这条边加入栈中。 这样就找到了一条合法的欧拉路径。 可以使用当前弧优化,时间优化到O(n+m)。 这个题因为要求字典 阅读全文
posted @ 2021-11-19 11:35 尹昱钦 阅读(125) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 若干平衡树,每次操作有两种,一是合并两个Splay,二是查询某一个点所在的平衡树里的第k小的点的编号。 首先用并查集维护某个点在哪个平衡树里,然后rt[i]记录编号为i的平衡树的根。 每次合并时启发式合并,直接把小的树的每个点暴力insert到大树里。 查询正常操作即可。 为了方便 阅读全文
posted @ 2021-11-18 17:12 尹昱钦 阅读(82) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 若强制在线,可以考虑用树剖+主席树,相当于每次询问两个点之间的路径上在 iCi 时刻之前开始搜集情报的人数。 但是这题可以离线,于是可以把询问按照 iCi 离线一下,就可以用线段树/树状数组来维护了。 注意一定要区分原编号和dfn编号。 时间复杂度:\(O( 阅读全文
posted @ 2021-11-16 21:39 尹昱钦 阅读(39) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 平衡树板子题。 每次所有的数加或减可以O(1)加或减限制,然后删除掉小于当前限制的点,统计答案。 加点时把原权值减去sum然后扔到Splay中,询问第k大时也要把查询的答案加上一个sum。 AC代码 #include<iostream> #include<cstdio> #incl 阅读全文
posted @ 2021-11-15 11:20 尹昱钦 阅读(39) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 首先考虑无解的情况: 首尾距离 <s 第一个石头到 0 的距离 <s 或第二个石头到 n+1 的距离 <s 存在一个 a[i+1]a[i1]<s 判断完无解的情况,考虑构造答案。 最简单的方法是过去的时候跳1,3,5,7,9,…… 阅读全文
posted @ 2021-11-09 08:22 尹昱钦 阅读(33) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 先二分答案,然后做一个在树上从叶子节点向上的贪心,让每个叶子尽可能取满。 当然也可以直接树形dp,O(n)。 注意如果WA on test 5,说明爆long long了,因为二分mid可以达到1e14,然后贪心过程中累加可能爆掉。 这时候设置一个inf,如果当前sum>inf,s 阅读全文
posted @ 2021-11-08 20:21 尹昱钦 阅读(36) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 非常好的一道题。 一开始错误的认为对于一个确定的左端点,合法的区间一定是右面的一个前缀。 但事实上并不是。 因为区间[k+1,2k]的起点不确定,所以不满足单调性。 所以正确的解法是先看区间[1,k],找到最大的k(因为这个区间满足单调性),然后回滚,看看最大k是多少可以使[k+1 阅读全文
posted @ 2021-11-07 15:04 尹昱钦 阅读(226) 评论(1) 推荐(0) 编辑
摘要:传送门 解题思路 用平衡树维护摧毁的房屋。 摧毁等于insert,修复等于delete,询问等于查询前驱后继。 为了方便先扔进一个0点和n+1点。 注意查询时先进行判断当前房屋是否已经摧毁。 AC代码 #include<iostream> #include<cstdio> #include<cstr 阅读全文
posted @ 2021-11-07 14:56 尹昱钦 阅读(47) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 Splay如何维护序列呢? 以序列下标作为val值,扔到Splay中。 因为有区间翻转操作,所以实际上并不能保证绝对的按照val值排序,也就是说Splay的中序遍历结果是真正的序列,而val值对应的是当前序列的每个元素原来的位置。 与普通的Splay的区别在于多了一个区间翻转操作, 阅读全文
posted @ 2021-11-06 20:44 尹昱钦 阅读(59) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 18 下一页
点击右上角即可分享
微信分享提示