随笔分类 - 基础算法与数据结构
摘要:贪心 $O(N^2logn)$很好做,直接暴力断边。 $O(nlogn)$做法 同样考虑贪心,每次往最小的点走一定更优,只不过我们可以在一个环上走一半之后回溯,使得答案更优 我们在 当前点 最近的 还有儿子没走的祖先的 最小的儿子比当前点的儿子小时 就回溯 当然这个回溯的儿子必须在环上,且必须是当前
阅读全文
摘要:二分 一道经典二分题,讲解见 "用户已注销的博客"
阅读全文
摘要:倍增加并查集 复杂度 $O(nlog^2n)$ 虽然AC了,可是一个月后重新看到他还是不会做 直接贴 "题解" c include using namespace std; define go(i,a,b) for(int i=a;i=b; i) define mem(a,b) memset(a,b
阅读全文
摘要:一道普及组贪心,但是证明好难啊(考试盲猜结论?) 证明可以看这位在csp考前已经认证7级的巨佬的博客(反正我是证不出来的) "证明"
阅读全文
摘要:贪心 自己写了一份丑陋的代码,又参考yxc老师的代码重写了一份 证明(参考yxc老师): 三条性质(详细的证明见笔记): 1. 如果加速某一点,可以加速某一段,故加速起点最优。 1. 不同的段互相独立 1. 若加速区间的起点,可能导致区间分裂,且区间权值不会更优 由这三条可以证明先取大的一定最优 一
阅读全文
摘要:期中测:光之箭矢 题意: 随机一个排列,按照排列的顺序选取物品,问期望有多少子集使得选取方案与最优方案相同 做法: 注意到对于一个子集,答案与未选取的部分如何排列无关,可以将其转化为一个计数问题,即对每一个子集,统计合法排列的方案数,再乘上01可重排列数,将答案相加,最后除以全排列数即为所求期望。
阅读全文
摘要:题意:一个学生有N个任务,每个任务有一个di,ti。di表示截止时间,ti代表该任务要花多少时间。若完成时间大于截止时间,则会造成完成时间 截止时间的损失。最小化最大的损失。 解法:按di排序,依次完成即可 证明:邻项交换法 设任务i的截止时间为t, 一.t d[i] 则损失分别为t d[i]和t+
阅读全文
浙公网安备 33010602011771号