01 2023 档案

摘要:AcWing 133. 蚯蚓 思考 朴素版的暴力写法就是全部遍历,每次操作后再排序。 而聪明一点的人就用单调队列,但是m的范围是七百万,这是非用线性算法不可(堆每次维护是$O(n log n)$。 但是突破口在哪里?其实你用优先队列的时候已经想到了。 既然题目说除了切开的蚯蚓,其他蚯蚓每过一秒长q的 阅读全文
posted @ 2023-01-29 21:32 Sankano 阅读(36) 评论(0) 推荐(0)
摘要:> [题目](https://www.acwing.com/problem/content/110/) ### 思考 看了很久才发现有一个很大的错误观点:空格不代表任何数,既非0也非9。 因为这个问题调了很久。 看到奇数码游戏这个话题,我们就先把它转换为**还原问题**; 那么我们空开空格这个问题, 阅读全文
posted @ 2023-01-29 20:55 Sankano 阅读(70) 评论(0) 推荐(1)
摘要:数据结构基本题单 阅读全文
posted @ 2023-01-28 10:45 Sankano 阅读(41) 评论(0) 推荐(0)
摘要:### 思考? 样例太弱了,需要自己出样例。分析后就会发现这道题是找最优解的题目,也就是贪心。 先保证完成的任务更多,再保证收入更多。当然实现的时候是同时(考虑)进行的 权值考虑:由于任务的用时对收入的影响更大,那么按任务用时从大到小排序,当用时相同时再考虑任务难度大小。 为了保证遍历机器时更快,机 阅读全文
posted @ 2023-01-27 22:29 Sankano 阅读(31) 评论(0) 推荐(0)
摘要:题面 总记 刚入手这道题似乎有些手足无措,是深搜求全排列,还是二分? 题意就是国王是个小气鬼。先分析样例,易得最佳序列如下: 1 1 2 3 4 6 7 4 通过样例会发现,只要$a$越小,$b$越大,那么国王付出的奖赏就越少,即便是奖赏最多的大臣奖赏也是所有情况中最少的。 但是$a,b$的关系很矛 阅读全文
posted @ 2023-01-27 21:37 Sankano 阅读(22) 评论(0) 推荐(0)
摘要:题目 算法1 栈 括号配对通常用栈,如果发现后括号和栈顶的元素相匹配,那么将其推出。 如果所有元素都是合法(这里的合法是题目定义的),且按顺序入栈(不管是前括号还是后括号都要入栈,只有配对了才弹出),那么最后栈应该是空的;这个问题就是讨论某一括号序列是否合法。 现在给一组括号序列,需要求出最长的合法 阅读全文
posted @ 2023-01-27 12:42 Sankano 阅读(37) 评论(0) 推荐(0)
摘要:纸牌均分问题 此题与七夕祭和货舱选址相似,所以在此不对纸牌均分问题做解释了。 只是有一个小小的注意点: 因为y最后会变为相同值,并要求移动次数最小,那么只需要记录每一个士兵的y坐标值,然后即可转换为货舱选址问题。 但因为x是不一样的,并且最后是有序连接排列的,所以我们用一个小技巧:用货舱选址的方法带 阅读全文
posted @ 2023-01-27 00:01 Sankano 阅读(9) 评论(0) 推荐(0)
摘要:### 推导 本题有一个重要的性质:**如果 $0 (a-c)^2+(b-d)^2$** 证明: 设不等式两端为1,2式; 则$(a-d)^2+(b-c)^2 = a^2+b^2+c^2+d^2-2ad-2bc$,$(a-c)^2+(b-d)^2 = a^2+b^2+c^2+d^2-2ac-2bd$ 阅读全文
posted @ 2023-01-26 23:34 Sankano 阅读(39) 评论(0) 推荐(0)
摘要:> [题目](https://www.acwing.com/problem/content/128/) ### 算法1 前缀和,$O(n^4)$ ``` #include using namespace std; const int N = 110; int s[N][N]; int main() 阅读全文
posted @ 2023-01-26 13:16 Sankano 阅读(14) 评论(0) 推荐(0)
摘要:## 深度优先搜索,剪枝(贪心) 题目希望我们找出最小的长度$len$,使得木棒能够粘成$n$个$len$的木棍。 首先遍历长度(范围小),但是请不要用二分,因为$len$不存在单调性和两段性。 暴力$dfs$一定是过不了的,那么我们先从拼接入手: 从一堆长度不等的木棒中,拼出已知长度的木棍,很容易 阅读全文
posted @ 2023-01-23 17:09 Sankano 阅读(35) 评论(0) 推荐(0)
摘要:### 差分,推导 > 计数类的区间修改一定要考虑用差分 给定一个长度为 $n$ 的数列 $a1,a2,…,an$,每次可以选择一个区间 $[l,r]$,使下标在这个区间内的数都加一或者都减一。 首先确定差分的方法,然后你会发现:当数组中所有元素相等时,$b_2 = b_3 = ... = b_n$ 阅读全文
posted @ 2023-01-21 13:02 Sankano 阅读(20) 评论(0) 推荐(0)
摘要:### 递推,位运算 本题的限制较多,所以爆搜加上剪枝是可以过的; 这里采用枚举操作的方法,可以大大提高运行效率。 首先给你一副$5*5$的$0,1$地图,要求你用十字变换的方法使地图全部变成$1$,并且操作数小于6次。 这里按行来看,如果你改变了第$i$行的$j$号灯,那么$j$号灯上下两行的$j 阅读全文
posted @ 2023-01-21 12:17 Sankano 阅读(26) 评论(0) 推荐(0)
摘要:### 数论,推导,分治 $O(M*log(x)*L)$ > 实数域的分治,多使用折半的方法,这一点在图论上也是一样的 先入暴力,dfs所有约数,发现时间复杂度太高了 $^_^$。 其实约数之和不用遍历约数,因为$A,B$都是合数,可以得出: $$ A^B = (P_1^{k_1} * p_2^{k 阅读全文
posted @ 2023-01-15 12:59 Sankano 阅读(50) 评论(0) 推荐(0)