摘要: D. Matrix Cascade 仔细想想会觉得这题的限定方式很像物理上波的传播。所以我们建立一个结构体,对于给定的n*n的表格上的每个点,都定义它具有四个属性: val 该点初始的值是多少 (1/0) under_wave_num 该点处于几个波下。可以知道,如果一个点处于某些波的影响下,那么该 阅读全文
posted @ 2023-09-02 19:26 KuriSh 阅读(41) 评论(0) 推荐(0)
摘要: G. The Great Equalizer 通过分析之后得知,每次询问的答案就是当前数组中的最大值和当下数组排序后相邻元素差值的最大值之和。 接下来考虑如何维护数组。这会想到用一颗二叉平衡搜索树来实现。这样的一颗树在STL里已经用multiset封装好了,直接使用即可。 创建两个辅助函数add(i 阅读全文
posted @ 2023-08-31 09:15 KuriSh 阅读(45) 评论(0) 推荐(0)
摘要: F. Magic Will Save the World 观察之后可以发现,每次蓄力之后释放,等价于蓄力到最后一次性释放。每次蓄力water和fire增长的值的固定的,设最后蓄力cnt次,那么最终water = w * cnt,fire = f * cnt,如果要让蓄力次数尽可能少,容易想到要让wa 阅读全文
posted @ 2023-08-28 17:10 KuriSh 阅读(58) 评论(0) 推荐(0)
摘要: 观察一下可以发现,d产生的消耗只与最后一次电影的观看位置有关。设1 <= i <= n,那么由d产生的消耗就是i * d。同时能从1 ~ i 中取得的回报是这段区间里最大的m个正数。用一个优先队列维护最大的m个正数,用val维护d产生的消耗与最大的m个正数产生的回报,记录所有位置的最大值,最后判断一 阅读全文
posted @ 2023-08-28 15:13 KuriSh 阅读(60) 评论(0) 推荐(0)
摘要: 字典树(前缀树)求区间异或和(异或对)最大值 求子区间异或对最大值 求子区间异或对的最大值,利用前缀树可以在每次询问对子区间内的每个元素在O(log n)的时间内得到答案,执行n此的时间花费为O(n logn),而得到答案需要已经建立前缀树,而每次询问答案都需要重新建立一棵前缀树,每次建树最坏情况下 阅读全文
posted @ 2023-08-22 22:31 KuriSh 阅读(260) 评论(0) 推荐(0)
摘要: CF 893 (Div.2) A. Buttons 签到题。两人会优先选择c中的按钮来,避免自己的按钮消耗同时减少对方可选择的按钮。所以c % 2 == 1等价于a的按钮数+1,c % 2 == 0时相当于c按钮不存在,比较a b 按钮的数量来得出答案即可。 #include<iostream> u 阅读全文
posted @ 2023-08-21 17:16 KuriSh 阅读(59) 评论(0) 推荐(0)
摘要: CF Edu 153 C. Game on Permutation 设必胜态指从这一格开始开始行动的某人一定能获胜,必败态同理。 从左到右遍历序列,如果左方有比自己的值的必输态,那么这一格一定可以转移到此必输态,所以这一格一定是必胜态 如果没有比自己的值小的必输态,则 比自己值小的均为必胜态。 此格 阅读全文
posted @ 2023-08-21 17:14 KuriSh 阅读(47) 评论(0) 推荐(0)