摘要: 莫比乌斯题目结(上) BZOJ3994 大佬们推公式的手段是怎么学到的……qwq完全想不到啊qwq 学习的是这篇博客的推公式。 要点节选: 1.结论:d(i*j)是i*j的约数个数,则 2.又用到莫比乌斯函数的性质 3.枚举项的更换。约数整除枚举的和搭配真值式往往可以替代为常数块,而直接枚举符合真值 阅读全文
posted @ 2019-03-07 21:53 AlphaWA 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 1.扫描线扫描x轴,线段树维护y轴。 2.坐标+1,线段树是从1开始维护。然后让边长--,这样就能包含边上的点了。 3.为了保证点在正方形内:在x轴上利用差分的思想,在x出Add(val),在x+r(已经-1了)处Add(-val);在y轴上利用线段树维护1~5001这个区间,在y~y+r上Add( 阅读全文
posted @ 2019-03-07 18:52 AlphaWA 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 随便写一下的搜索,别的OJ深搜就过了,强大的BZOJ成功栈溢出RE了我并使我屈服地用广搜过掉,第一行手动开栈惨遭无视。 广搜: 深搜: 阅读全文
posted @ 2019-03-07 09:38 AlphaWA 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目本质:因为只能往南和往东走所以不管怎么组合方案结果都是一样的Orz……我太菜了想不到嘤嘤嘤 阅读全文
posted @ 2019-03-07 08:14 AlphaWA 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目性质:1.当前节点空闲则必须做任务,而不是可选可不选;2.然而前面的如果能覆盖当前节点,就可以不选。 解决方法:倒着扫可以很好地解决这两个问题。dp[i]为时刻i可得的最大空闲时间。如果此刻没有任务,则空闲时间+1;否则最大空闲时间等于任务结束节点的最大空闲时间: 总代码main: 阅读全文
posted @ 2019-03-05 22:25 AlphaWA 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 首先是喜闻乐见的几个入门基础题,连题面基本都是一样的,流程是预处理mu函数,得到输入数据后整除分块(如果时间复杂度需要的话),思路主要是套用下图第二个公式: (截图来自电科bilibili上的算法讲堂大家可以去看哦) 洛谷2257 题意:全部gcd(1~n,1~m)为质数的个数。 刚开始不用管他要求 阅读全文
posted @ 2019-03-05 17:10 AlphaWA 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 题目本质:如果答案是i,那么从行和列两维都会满足:以i的倍数分块,矩阵值相同。 一种解决方法: 1.首先题目里说了要在n的约数里找orzorz…… 2.块中需要一整排都相同。用“与前一排相同否?”来判定,而每块的第一排允许与上一排不同。复杂度还是n^2。 行和列都弄一遍以上代码。 阅读全文
posted @ 2019-03-02 19:24 AlphaWA 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目本质:忽略串的变化,只记载26个字母的相关变化。 解决方法: 在上一次与本次的转移过程中,情况并不多,主要取决于本次串的首尾字母,若不是本次的首尾字母,会被置1;如果是的话,分情况接一下并更新。另外应该不会忘记的就是要拿本次串的最长串再更新一下。 复杂度最差时不是O(n2)吗?数据骗了。 阅读全文
posted @ 2019-02-26 18:47 AlphaWA 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include ... 阅读全文
posted @ 2019-02-26 18:37 AlphaWA 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 参照题解 题目本质:最优决策一定只有两种:前X大的A值、前X-1大的A值加上一个A+2*S最大的。 解决方法: 按照A的从大到小排序。 维护:1.A的前缀和;2.前i个里最大的S;3.从i往后最大的A+2*S. 然后O(n)max一遍即可。 阅读全文
posted @ 2019-02-25 22:39 AlphaWA 阅读(454) 评论(0) 推荐(0) 编辑