随笔分类 - 优先队列
摘要:A 签到题,分别计算两种情况边的贡献,注意奇偶性的影响 #include<bits/stdc++.h> #define inf 2139062143 #define ll long long #define db double #define ld long double #define ull u
阅读全文
摘要:A 很猛的题 咕了 B 线段树计数 咕了 C 签到题,推个式子,大概是拆成了一些等比的三角形以及面积为等差乘等比的矩形面积和 #include<bits/stdc++.h> #define inf 2139062143 #define ll long long #define db double #
阅读全文
摘要:A $FMT$和一堆奇怪的东西 跑了 B 线段树 咕了 C 奇怪的题 好像和二进制有关 跑了 D 特征多项式 跑了 E 博弈推出结论+\(FWT\) 跑了 F 每个点在第二棵树上代表它的子树对应的$dfs$序对应区间,现在要在第一棵树上求一条由上至下的链使得这条链上所有点对应区间不相交 每个点$x$
阅读全文
摘要:题目大意: n个数组成的环中取m个互不相邻的数使这些数和最大 思路: 贪心 先用链表把数存起来 然后每次选一个最大的$a[x]$,把链表左右两边的删掉 把这个值替换为$a_{left[x]}+a_{right[x]}-a_x$ 这样在堆里重复m次即可 1 #include<iostream> 2 #
阅读全文
摘要:bzoj 2152 聪聪可可 题目大意: 求树上边权和为3的倍数的路径的条数 思路: 点分治练习题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cmath> 5 #include<algorithm>
阅读全文
摘要:这一次终极被吊打 甚至没进前十 T2 最后改错 T3 没写正解 T1 elim 题目大意: n 行 m 列的游戏棋盘,一行或一列上有连续 三个或更多的相同颜色的棋子时,这些棋子都被消除 当有多处可以被消除时,这些地方的棋子将同时被消除 求消除后的棋盘 思路: sb模拟 1 #include<iost
阅读全文
摘要:题目大意: 一个无向图 每个点有权值 支持两个操作 1 修改某个点的权值 2 查询a-b所有简单路径的点上的最小值 思路: 可以把图变成圆方树 然后树链剖分 维护 对于每个方点使用可删堆维护 1 #include<iostream> 2 #include<cstdio> 3 #include<cma
阅读全文
摘要:New: n个物品要在两个机器上加工 时间分别为ai bi 必须现在第一台机器上加工 求最短加工时间 Johnson算法: N1为a<b物品集合 N2为a>=b物品集合 N1物品按a升序排序 N2按b降序排序 N1接N2为最优顺序 1 #include<iostream> 2 #include<cs
阅读全文
摘要:题目大意: n个建筑,每个建筑有两个值,一个为修它的时间长度 一个为它的截止日期(若超过该日期则无法修建该建筑) 求最多能修多少个建筑 思路: 首先我们可以把它们按照截止日期排序 然后在正常贪心的基础上 做一个优化 我们把已经修过的建筑的修建时间都放到一个队里 每次如果一个建筑不能修 那么我们考虑一
阅读全文
摘要:T1: 小喵喵有 n 个小鱼干排成一列,其中第 i个小鱼干有两种属性,美味度 ai 和特殊度 bi 现在小喵喵要吃掉一些小鱼干,出于一些原因,小喵喵会吃掉连续的一段区间中的所有小鱼干。 如果吃掉了 [l,r]一段区间,那么小喵喵会获得一些满意度。 形式化地,总满意度 =(ai,l<=i<=r)×(1
阅读全文
摘要:题目大意: 有一个n*n的矩阵 从每行里选出一个数,有nn种选法,求所有选法中选出数和的最小的n种(重复的算多次) 思路: 首先我们可以知道若已知前两行的最优n种选法 则选完第三行,最优n种选法还是由着n种加上第三行的某个数 这样我们就可以使用一个数组来记录前几行的最优n种选法 然后对于每个要选的行
阅读全文
摘要:题目大意: 一些数,需要将他们依次取入一个集合中 集合的容量有限 若该数已经在集合中则不用再取 每次取的时候可以将集合中与元素替换为另一个,也可以不换,直接加入前提是不超过集合容量 求最后最小的取数次数 思路: 可以想到一个贪心算法 就是下一次将要被取位置越远的书应该先被从集合中删除 因此我们可以使
阅读全文
摘要:题目大意: 有很多物品要卖,每种物品都有自己的价值和截止日期,每个物品都必须在截止日期前卖出去,每天只能卖一件东西 求最后获得的最大价值和是多少 思路: 优先队列 按照截止日期由大到小排序,从最大截止日期开始,一天天向前推直到1 如果某天是一个东西的截止日期,就把这件东西的价值加到优先队列里,每天都
阅读全文
摘要:题目大意: 有一块木板,要把这块木板分成n块,已知每块的长度,每次切木板的花费就是这块模板的长度 现在求把木板切成规定要求的最小花费是多少 思路: 贪心+优先队列 先把n个小木板的长度都加到优先队列里,然后每次取最小的两个,把他们两个加起来加到优先队列里,然后把他们两个的和加到ans里 最后只剩一个
阅读全文
摘要:题目大意: 一辆车开始有n升油,距终点有L km,途中有m个加油站,给出每个加油站到终点的距离与每个加油站可加的油,油箱容量无限大,已知1升油可以使车跑1 km,问最少加多少次油能让车跑到终点。 如果不能到达终点输出-1 思路:模拟加优先队列,一步步看车有没有足够的油跑到下一个加油站,跑到了就把这个
阅读全文

浙公网安备 33010602011771号