摘要:
题面传送门 对于这道题,我们很容易想到分层图(大概是因为那道分层图优化成矩乘太出名了),则这道题只需要建两层就够了,一层表示横的,一层表示竖的。 首先思考两层图之间怎么连接,很明显,由本层的点向下一层的同一节点建一条双向的边权为$1$的边 其次思考同一层图中怎么建边,我们可以用两个$vector$来 阅读全文
摘要:
题面传送门 对于这道题,我们有一个显而易见的结论:当两条线分别为$x1$,\(x2\),\(y1\),$y2$时,且$x1>y1&&x2<y2$或$x1<y1&&x2>y2$时这两条线相交 从这之中又可以推出一个定理:若我们按照左边的顺序依次选了$k$条线互不相交,其下标记为$s_1,s_2.... 阅读全文
摘要:
题面传送门 贪心一般和排序逃不开关系。这一道题目是普及组原题的弱化版。 首先我们列出答案的式子$ans=\sum\limits_{(a_i\times\sum\limits_)}$ 乘法分配律,\(ans=\sum\limits_{i=1}^{n}{(a_i\times b_i+a_i\times 阅读全文
摘要:
题面传送门 算法简介:二分查找(答案),时间复杂度$O(log^2n)$.可以在一个有序表中快速查找某个数。可以利用这个性质来二分答案来做到快速有效枚举。 算法实现:对于一个有序表,二分查找一个数是否存在。 首先定义边界值:\(l=0\),\(r=max(a_{i})+1\);然后取中值$mid=\ 阅读全文
摘要:
今天的$ACM$模拟赛,最后一道题让我们抓耳挠腮了好长时间。这道题看似能贪心($50$分),又好像能搜索($50$分),其实就是$dp$,一道$01$背包的变体,问题中一个人要么到一边,要么到另一边。这不就是$01$背包嘛!不过还要控制人数。 下面有一个在$ACM$上过的,但是被民间数据hank掉的 阅读全文
摘要:
马拉车算法是一种计算最长回文子串的算法,以其优秀的线性复杂度闻名于世,相较于$O(n2)$的$dp$算法和会被特殊数据卡到$O(n2)$的暴力算法,马拉车算法无疑是求解最长回文子串的最优选择。 最长回文子串分为偶数串和奇数串,为了避免这些问题,马拉车算法将每个字符与字符间插入一个特殊字符,在两头插入 阅读全文