随笔分类 - 贪心
摘要:Code cpp include define N 2000008 using namespace std; struct sj{ int to,next; }a[N 2]; int size,head[N],n,k; void in(int &x) { char ch=getchar();int
阅读全文
摘要:"题目链接" Solution 二维偏序问题。 现将所有点按照左端点排序,如此以来从左至右便满足了 $a_i define N 50010 define ll long long using namespace std; void in(ll &x) { char ch=getchar();ll f
阅读全文
摘要:"题目链接" Solution Meet in the middle. 考虑到 $2^{35}$ 枚举会超时,于是分成两半枚举(尽量平均). 然后不能 $n^2$ 去匹配,需要用到一点贪心: 将数分成 $p,q$ 两组,那么对于任意数 $p_i$ ; 它与 $q$ 数组中组成最大得到的值即为 最大的
阅读全文
摘要:"题目链接" Solution 可以考虑 $dp$ ,但是很显然 $(n^2)$ 降不下来. 然后考虑贪心,首先,绝对的正确的是,在同等的情况下,给后面的留更多的时间. 首先按照 $T_2$ 排序. 然后我们维护一个大根堆 每修理一栋建筑 我们就把这栋建筑的T1值加入堆 若当前无法修理 我们判断堆顶
阅读全文
摘要:"题目链接" Solution 线段树. 观察题目可以得到一个小 $trick$ : 对于任意一个节点 $i$ ,那么和它颜色相同的上一个节点 $pre[i]$,肯定不会放在一个区间. 于是考虑对于每一个节点计算它可以献出贡献的区间. 先 $O(n)$ 扫出每一个点的 $pre$ . 然后从左往右,
阅读全文
摘要:"题目链接" Solution 分层图+$SPFA$。 建立3层图,其中每一层之中的边权赋为0. 对于任意一条边 $t$ ,其起点 $x$ 和终点 $y$. 我们将 $x$ 在第一层的节点连向 $y$ 的第二层节点,边权为 $w[x]$. 代表在 $x$ 买了这个东西. 然后将 $x$ 在第二层的节
阅读全文
摘要:"题目链接" Solution 这道题,调了我一晚上... 一直80分 _ 所以我们先枚举断开直径上的边,然后分别找到断开后两棵子树的直径. 接着我们讨论 $dis_1,dis_2$ 最优情况. 1. 其 $dis$ 为其到子树直径较远的一端. 2. 如果 $x_1,x_2$ 在子树的直径上,那么显
阅读全文
摘要:"题目链接" Solution 我们直接找到一条直径 $s$,起点为 $begin$,终点为 $end$. 从前往后遍历点 $u$ ,若子树中最大的距离与 $dis(u,begin)$ 相等. 很显然这个点不在公共线段上,很显然可以用子树的中的一段接上,形成一条新的直径. 然后从后往前遍历,同样的道
阅读全文
摘要:"题目链接" Solution 好题. 一开始一直在想怎么蛇皮建图,但是发现一直蛇不出来... 正解是用类似于 dijkstra 的算法对所有点进行松弛. 对于每个元素记录两个值: $cost$ 代表它的最小花费. $ans$ 代表它的方案数. 同时用一个$f_{i,j}$记录第$i$种和第$j$种
阅读全文
摘要:"题目链接" 大致题意 给你 $n$ 个字符串, 要求你给出最小的代价. 对于每个字符串: 1.如果它的后缀在它之后,那么代价为 $n^2$. 2.如果一个字符串没有后缀,那么代价为 $x$, $x$是它所处的位置. 3.如果字符串前面有它的后缀且位置为 $y$,那么代价为 $x y$. Solut
阅读全文
摘要:"题目链接" Solution 很妙的DP,很妙的贪心. 首先考虑,如果说没有那个相同的不能配对的情况; 那么我们肯定是直接排两遍序,然后一一对应即可. 但是是有限制的,同时我们可得几个条件供贪心: 每个数字仅在 $a$ 或 $b$ 中出现一次. 即每个序列排序之后满足 $a_i≠b_i$. 如果
阅读全文
摘要:"题目链接" Solution 1.先找出树的直径. 2.遍历直径沿途的每一个节点以及它的子树. 3.然后对于每个非直径节点直接统计答案,令直径的两个端点为 $x_1,x_2$ . $$Ans=\sum{Max(dis(i,x1),dis(i,x2))}$$ 最后再单独把直径拎出来,单独统计一次就好
阅读全文
摘要:题目描述 For his birthday present little Johnny has received from his parents a new plaything which consists of a tube and a set of disks. The aforementio
阅读全文
摘要:1) 区间贪心 一、线段覆盖 n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两不相交 右端点排序(),再从左到右遇到不相交的就选 二、区间选点 n个闭区间[ai,bi],选择尽量少的点,使得每个区间至少有一个点 右端点排序(),每次选择可选区间的最后一个点 三、区间覆盖 数轴上有n个闭区
阅读全文
摘要:题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂。这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭。由于每个人的口味(以及胃口)不同,所以他们要吃的菜各有不同,打饭所要花费的时间是因人而异的。另外每个人吃饭的速度也不尽相同,所以吃饭花费的时间也是可能有
阅读全文
摘要:题目描述 小 Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数字 1,2,3….进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅存在一条通路(通路指连接两个元件的导线序列)。 在电路板上存在一个特殊的元件称为“激
阅读全文
摘要:题目描述 Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。 注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序
阅读全文
摘要:题目背景 隔壁的新初一电脑班刚考过一场试,又到了BlingBling的裁员时间,老师把这项工作交给了ZZY来进行。而ZZY最近忙着刷题,就把这重要的任务交(tui)给了你。 题目描述 ZZY有独特的裁员技巧:每个同学都有一个考试得分ai(-1000<=ai<=1000),在n个同学(n<=500)中
阅读全文
摘要:题目描述 约翰有太多的工作要做。为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间。 他的工作日从0时刻开始,有10^8个单位时间。在任一时刻,他都可以选择编号1~N的N(1 <= N <= 10^6)项工作中的任意一项工作来完成。 因为他在每个单位时间里只能做一个工作,而每项工作又有
阅读全文

浙公网安备 33010602011771号