01 2017 档案

摘要:orz一开始想不画图做这个题(然后脑袋就炸了,思维能力有待提高) 我的做法是动态规划+贪心+构造 首先把题目给的树变成一个可行的情况,同时weight最小 这个可以通过动态规划解决 dp[x]表示以x为结点的子树,它的最小weight是多少 接着我们就只需要考虑每条边增加多少就可以了,这里可以用贪心 阅读全文
posted @ 2017-01-31 17:08 Saurus 阅读(350) 评论(0) 推荐(0)
摘要:首先要知道 (m/1 + m/2 + ... + m/m) 约为 mlogm 还有一个比较明显的结论,如果一个纪念品区间长度大于d,那么如果列车的停车间隔小于等于d,则这个纪念品一定能被买到 然后把区间按长度排序 枚举d,边枚举边加那些长度小于d的区间到线段树当中,这样可以保证一个纪念品不会被加2次 阅读全文
posted @ 2017-01-29 16:17 Saurus 阅读(202) 评论(0) 推荐(0)
摘要:给定串A和串B,A由26个小写字母构成,B由?和26个小写字母构成 ?可以和任意字符匹配 求A中出现了多少次B 这里可以使用fft做法,定义向量A和向量B 然后求A和rev(B)的卷积结果C C的第i-len(B)位就可以表示匹配结果 如果C的第i-len(B)位恰好是B中除了?的字符个数,那么就是 阅读全文
posted @ 2017-01-25 14:12 Saurus 阅读(1882) 评论(0) 推荐(1)
摘要:有时间来补算法原理orz 阅读全文
posted @ 2017-01-24 19:29 Saurus 阅读(475) 评论(0) 推荐(0)
摘要:这个算法就比较简单易懂了 就是把每个向量的特征值抽象成坐标,寻找最近的k个点,来进行划分 代码如下 阅读全文
posted @ 2017-01-24 18:37 Saurus 阅读(278) 评论(0) 推荐(0)
摘要:题目大意 求从l到r的整数中长度为n的等比数列个数,公比可以为分数 首先n=1的时候,直接输出r-l+1即可 n=2的时候,就是C(n, 2)*2 考虑n>2的情况 不妨设公比为p/q(p和q互素->既约分数) 那么等比数列为 k k*p/q k*(p/q)^2 ..... k*(p/q)^(n-1 阅读全文
posted @ 2017-01-20 13:32 Saurus 阅读(315) 评论(0) 推荐(0)
摘要:orz 最近被水题卡+FST,各种掉rating 题目大意 一个数s它是n进制的,但是每一位不是用'A','B'....表示的,而是用10,11等等表示的,将它还原成十进制 这种表示方法显然会产生多解,然后求所有的解中最小的那个 这题一想就是贪心,但是一开始算法写渣了,改变思路以后才A的 简单来说就 阅读全文
posted @ 2017-01-20 13:24 Saurus 阅读(224) 评论(0) 推荐(0)
摘要:这里只写一下用C++简单实现的ID3算法决策树 ID3算法是基于信息熵和信息获取量 每次建立新节点时,选取一个信息获取量最大(以信息熵为衡量)的属性进行分割 决策树还有很多其他算法,不过都只是衡量标准不同 实质都是按照贪心自上而下地建树 如果深度过深,还要采取剪枝的手段 阅读全文
posted @ 2017-01-19 19:47 Saurus 阅读(277) 评论(0) 推荐(0)