acwing
子衿h
maybe today, maybe yesterday, you will success! I promise。
展开
-
树形DP
在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。不选节点 f[u][0]+=max(f[j][1],f[j][0])f[u][0] 表示以u为根节点的子树并且不包括u的总快乐指数。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi给出,其中 1≤i≤N。f[u][1] 表示以u为根节点的子树并且包括u的总快乐指数。选u节点,f[u][1]+=f[j][0];Ural 大学有 N名职员,编号为 1∼N。原创 2024-02-05 14:34:22 · 355 阅读 · 0 评论 -
状态压缩Dp
【代码】状态压缩Dp。原创 2024-02-04 23:41:33 · 392 阅读 · 0 评论 -
二分图
首先根据二分图的性质,如果A中有a个点,那么另一集合一定有n-a个点,那么真正的二分图一共有a*(n-a)条边,现在一共有n-1条边,那么应添加a*(n-a)-n+1条边。联盟内有很多人关系恶劣甚至相互仇视,以至于劣马决定将联盟分成两个部门,以便将相互仇视的成员全部分开。给出 n 个点,n−1 条边的连通图,求再最多再添加多少边使得二分图的性质成立。给定一个 n个点 m条边的无向图,图中可能存在重边和自环。作为罪恶的领袖,劣马不会花费他宝贵的时间来作这项工作。作为邪恶联盟的领导者,劣马有很多问题要处理。原创 2024-01-31 15:37:11 · 446 阅读 · 0 评论 -
队列 queue
第一个数字是N(1<=N<=10) ,数组的大小。下列 N个数字的数组a的所有元素(1<=ai<=100)。当轮到某个人取钱时,如果其需要的钱的数量大于 X,则只能先取 X 元钱,然后去队尾重新排队,等待下次轮到他取钱时,继续去取。N 个人(编号 1∼N),排成一队在 ATM 机前准备取钱。初始时,队列按编号升序的顺序排列。现在要对队列进行 M个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。当一个人取够钱时,他就会拿着钱离开队列。现在,请你确定所有人离开队列的顺序。problem 模拟队列。原创 2024-01-31 14:26:39 · 561 阅读 · 0 评论 -
栈 stack
所以,每当在 s中发现一个相同连续字母对时,就应当将这对字母从 s中删除,如果删除某一对后,出现了新的相同连续字母对,则新的对也应当被删除。2.两人轮流进行消除操作,当轮到一人时,其任务是在当前 s中找到两个连续且相同的字母,并将它们从 s中消除。例如,当 s为 abba 时,可以消除 bb,使 s变为 aa。如果字符串中存在两个字母相同且相邻,则称它们为相同连续字母对。可以证明,不论按何种顺序删除相同连续字母对,最终得到的字符串都是一样的。总之,最终得到的字符串中不能存在相同连续字母对。原创 2024-01-30 14:23:08 · 709 阅读 · 0 评论 -
练习
基础一排序二分高精度前缀和,差分双指针算法位运算离散化区间合并二栈队列单调栈单调队列KMPTrie并查集堆哈希表三质数约数欧拉函数快速幂扩展欧几里得算法中国剩余定理高斯消元求组合数容斥原理博弈论四背包问题线性DP区间DP计数DP数位DP状态压缩DP树形DP记忆化搜索五区间问题排序不等式绝对值不等式推公式六 搜索与图论提高。原创 2024-01-30 13:24:38 · 380 阅读 · 0 评论 -
acwing 140周赛
2.客人的下单菜品,需要在客人到来前准备完善,即在第 [si,di−1] 个时段内,恰好花费 ci 个时段(不一定是连续的 ci个时段,但必须是不多不少的 ci个时段)来准备该客人的下单菜品。第 i个订单只可能在第 [si,di−1]个时段内准备。在单个时段内,贝茜只能专心做一件事:要么休息,要么准备某一个订单的菜品,要么迎接某一个到来的客人。1.客人到来时,贝茜需要及时迎接,即贝茜需要在第 di个时段迎接第 i个客人。注意,如果某个时段没有客人到来,那么在这个时段贝茜就不可能有迎接客人的行动。原创 2024-01-30 10:23:56 · 376 阅读 · 0 评论 -
01背包 练习
辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。选取和不超过 S 的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。也为纯01背包,只不过把价值变为了乘积的和。,共选择k件物品,则所求的总和为:v。原创 2024-01-22 22:38:02 · 339 阅读 · 0 评论 -
线性DP
改 如果a[1~i-1] == b[1–j-1] 则分类:1.a[i]!=b[j]要把a[i]改成b[i];集合:f[i][j]表示把a[1-i]变成b[1~j]需要的最少操作数。f[i][j]表示a的前i个字母,和b的前j个字母的最长公共子序列长。增 如果a[1-i] == b[1~j-1] 则需要在a[i+1]删 如果a[1~i-1] == b[1~j] 则需要删掉a[i]1.a不在,b不在 长度为f[i-1][j-1]4 a,b都在序列中,f[[i-1][j-1]+1。为上增加b[j]的字母。原创 2024-01-22 21:27:09 · 376 阅读 · 0 评论 -
01 背包 完全背包
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。有 N件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是v。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 v。原创 2024-01-22 16:25:24 · 337 阅读 · 0 评论 -
acwing周赛
【代码】acwing周赛。原创 2024-01-20 21:37:54 · 467 阅读 · 0 评论 -
深度优先搜索 dfs
【代码】深度优先搜索 dfs。原创 2024-01-19 15:54:14 · 355 阅读 · 0 评论 -
哈希 hash
【代码】哈希 hash。原创 2024-01-18 14:31:51 · 389 阅读 · 0 评论 -
并查集 Union-find
【代码】并查集 Union-find。原创 2024-01-18 14:26:13 · 433 阅读 · 0 评论 -
acwing
【代码】acwing。原创 2024-01-17 22:04:52 · 348 阅读 · 0 评论 -
stack(栈) queue(队列)
【代码】stack(栈) queue(队列)原创 2024-01-17 17:06:02 · 394 阅读 · 0 评论 -
双指针 Two Pointers
链接: [判断子序列]原创 2024-01-17 16:57:22 · 418 阅读 · 0 评论 -
二分 binary search
【代码】二分 binary search。原创 2024-01-17 16:51:15 · 343 阅读 · 0 评论 -
acwing
【代码】acwing。原创 2024-01-16 23:46:06 · 694 阅读 · 0 评论