随笔分类 -  算法

摘要:正确的贪心方法:按照比例排序. code: 阅读全文
posted @ 2019-10-01 09:01 EM-LGH 阅读(216) 评论(0) 推荐(0)
摘要:发现让 $b$ 更大的越靠前越优,然后依次决策将每个人分给哪个窗口. 令 $f[i][j]$ 表示考虑了前 $i$ 个人,且第一个窗口的总等待时间为 $j$ 的最小总时间. 然后转移一下就好了~ 阅读全文
posted @ 2019-09-25 15:39 EM-LGH 阅读(135) 评论(0) 推荐(0)
摘要:悬线法,虽然得不到局部最优解,但是一定能得到全局最优解的算法,十分神奇~ 阅读全文
posted @ 2019-09-25 10:44 EM-LGH 阅读(146) 评论(0) 推荐(0)
摘要:现在感觉还是挺好想的. Code: 阅读全文
posted @ 2019-09-23 16:17 EM-LGH 阅读(193) 评论(0) 推荐(0)
摘要:发现对于任意一条边,起决定性作用的是节点编号更大的点. 于是,对于每一条边,按照节点编号较大值作为边权,按照最小生成树的方式插入即可. 最后用线段树维护 dfs 序做一个区间查询即可. Code: 阅读全文
posted @ 2019-09-23 10:18 EM-LGH 阅读(199) 评论(0) 推荐(0)
摘要:此题卡Dijkstra... Code: 阅读全文
posted @ 2019-09-19 10:44 EM-LGH 阅读(215) 评论(0) 推荐(0)
摘要:Code: 阅读全文
posted @ 2019-09-19 08:57 EM-LGH 阅读(156) 评论(0) 推荐(0)
摘要:Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值。 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值。 Input 第一行一个正整数N。 接下来 阅读全文
posted @ 2019-09-17 15:55 EM-LGH 阅读(153) 评论(0) 推荐(0)
摘要:将所有元素按照魔法值从大到小排序,然后依次试着往线性基里插入就完事了. 阅读全文
posted @ 2019-09-17 15:00 EM-LGH 阅读(132) 评论(0) 推荐(0)
摘要:感觉现在写点分治可快了~ 二分答案,就可以将求第 $k$ 大转换成一个判断问题,直接拿点分树判断一下就行了. 阅读全文
posted @ 2019-09-03 20:08 EM-LGH 阅读(209) 评论(0) 推荐(0)
摘要:独立写出来+想出来的,1.5h就切了~ 建立点分树,然后用 $vector$ 暴力存所有子节点,然后二分一下子就可以了. 阅读全文
posted @ 2019-09-02 20:58 EM-LGH 阅读(148) 评论(0) 推荐(0)
摘要:考场上切的,挺简单的~ Code: 阅读全文
posted @ 2019-08-31 13:16 EM-LGH 阅读(142) 评论(0) 推荐(0)
摘要:打比赛的时候切的,不过竟然 wa 了 14 次~ 挺简单的,直接在跑 $Dijkstra$ 的时候记录一下路径最大值就好了. 阅读全文
posted @ 2019-08-24 16:59 EM-LGH 阅读(197) 评论(0) 推荐(0)
摘要:对于这个神仙题,我还能说什么~ 第一个答案=$n/2$ 还是比较好猜的. 对于构造这个树,大概就是先从 $1$ 号节点向 $n/2$ 距离以内都连一条边,再在第 $n/2$ 个节点进行这个操作,然后从 $2$ 开始..... 你会发现不合法的情况就是有重边,然而这个是循环的,第 $n/2+1$ 次才 阅读全文
posted @ 2019-08-22 16:23 EM-LGH 阅读(217) 评论(0) 推荐(0)
摘要:这个题思路十分巧妙,感觉很多题都有类似的套路. 我们发现异或操作其实就是将一个数的二进制的若干个 $0$ 变成 $1$,或者一些 $1$ 变成 $0$. 而每次按照某种顺序一位一位地异或也可以起到同时异或多位的结果. 所以我们每次只要把每个节点连到只该变一位的节点就可以了. 然后就直接跑一个最短路~ 阅读全文
posted @ 2019-08-21 20:48 EM-LGH 阅读(174) 评论(0) 推荐(0)
摘要:Description 给出一个N个点M条边的无向图,经过一个点的代价是进入和离开这个点的两条边的边权的较大值,求从起点1到点N的最小代价。起点的代价是离开起点的边的边权,终点的代价是进入终点的边的边权 N<=100000 M<=200000 给出一个N个点M条边的无向图,经过一个点的代价是进入和离 阅读全文
posted @ 2019-08-21 14:17 EM-LGH 阅读(139) 评论(0) 推荐(0)
摘要:现在看来这道题就非常好理解了. 可以将问题转化为求两点间经过 $k$ 个点的路径最小值,然后枚举剩余的那一个点即可. 阅读全文
posted @ 2019-08-21 08:47 EM-LGH 阅读(159) 评论(0) 推荐(0)
摘要:考试的时候是这么想的: 求出每一个点花掉 $i$ 的花费向其他点尽可能走的最长距离,然后二分这个花费,找到第一个大于 $d$ 的就输出$.$然而,我这个记忆化搜索 $TLE$ 的很惨$.$这里讲一下正解: 上面的大题思路是正确的,但是记忆化搜索太慢,考虑倍增 $floyd.$令 $f[i][j]$ 阅读全文
posted @ 2019-08-20 19:26 EM-LGH 阅读(255) 评论(0) 推荐(0)
摘要:手画几下序列的变换后发现逆序对数是恒定的,故只需对第 $0$ 年求逆序对即可. 树状数组会 $TLE$ 的很惨,需要用到归并排序来求逆序对. 其实就是省掉了一个离散化的时间,估计能比树状数组快一半的时间. 阅读全文
posted @ 2019-08-15 12:54 EM-LGH 阅读(200) 评论(0) 推荐(0)
摘要:只要一堆线段有重叠次数大于等于 $m$ 次的位置,那么一定有解 因为重叠 $m$ 次只需 $m$ 个线断,将那些多余的线断排除掉即可 先将区间按照长度从小到大排序,再用 $two-pointer$ 从左到右扫描 不难发现左右两个指针都是不递减的,所以时间复杂度是 $O(\texttt{nlogn}) 阅读全文
posted @ 2019-08-01 16:44 EM-LGH 阅读(220) 评论(0) 推荐(0)