推式子小技巧

推式子小技巧

标签(空格分隔): 数学


先讲一些万金油

  • 交换求和顺序,这个很\(naive\)。
  • 式子可以随意提到与其无关的枚举项前后,这个也很\(naive\)。
  • 算贡献思想,这个非常重要,一般需要一点个人能力,只要转化前后每一项被算的次数一样就可以
  • 熟记常见结论,对模数敏感一点,该卷积的就卷起来用多项式,该反演的反演,该容斥的容斥。
  • 还要一些灵感啊\(QAQ\)

卷积

这个我玩的不怎么熟,只会常见形式。

\[\sum\limits_{i=1}^{n}f(i)g(n-i)\]

没错你碰见什么式子尽量拆成只与\(i\)和只与\(n-i\)有关系的函数就可以了,基本上就是卷积。

\[\sum\limits_{i=1}^{n}f(i)g(i+d)\]

这个嘛,你把\(g\)数组\(reverse\)一下,使得\(g^{'}(n-i-d)=g(i)\),然后又可以卷了。


组合数学

这个我也不熟,随便鬼扯一点。

  • 看到模数是质数又和组合数有关,先想能不能用\(lucas\)优化推理过程,如这道题
  • 基本上所有的扩展数论算法都基于把模数分成\(\prod p_i^{a_i}\)然后对每个\(p_i^{a_i}\)分别处理。
  • 遇到一些特殊的计数\(dp\)找性质,利用数量相等的关系推转移方程,如卡农地精部落地形生成
  • 该二项式反演的就二项式反演,两种形式记清楚
  • \(f(k) = \sum\limits_{i = k}^{n} (-1)^{i}\binom{i}{k}g(i) \Leftrightarrow g(k) = \sum\limits_{i = k}^{n} (-1)^{i} \binom{i}{k}f(i)\)
  • \(f(k) = \sum\limits_{i = k}^{n} \binom{i}{k}g(i) \Leftrightarrow g(k) = \sum\limits_{i = k}^{n} (-1)^{i - k} \binom{i}{k}f(i)\)
  • 然后主要就是容斥,容斥的本质就是减掉多算的,让每个数变成它该算到的次数。
  • 叉姐的标准容斥形式,设\(B_i\)表示第\(i\)件坏事发生的概率,那么\(n\)个坏事都不发生的概率,可以通过\(2^n\)个同时发生的概率计算,\(\{S|B_i\in S\}\)的容斥系数是\((-1)^{|S|}\)。

筛法

这个我还是不熟,又要随便扯一点。

  • 线性筛还不会的可以退役了。
  • 埃式筛有时候有奇效,\(min\_25\)差不多就是个埃式筛的过程
  • 看数据范围行事,\(\le 10^6\)基本上是埃式筛,\(\le2*10^7\)之类就要线性筛了,$\le 10^{10} $~\(10^{11}\)杜教和\(min\_25\)准没错,再大了,就要看灵感了。
  • 积性函数是非常非常非常重要的!
  • 判断一个函数是不是积性的,先看是不是基本函数,再根据函数定义判断是不是积性函数,实在不行,两个积性函数的狄利克雷卷积函数是积性的,还不能判断那我也没办法了。
  • 看到一个函数\(f(p)\),看它是不是积性的,如果是,那基本上能线筛,只要能快速求\(f(p)\)和\(f(p^k)\)就能线筛,如果不是积性函数,那也可能有一些和线筛过程有关的性质,于是有可以线筛。如此题就是线筛非积性函数的栗子。
  • \(min\_25\)筛的原理一定要理解,用它可以干一些与最小质因子(第一步魔改),最大次大质因子(第二步魔改),特定质因子(都要魔改)等毒瘤问题。
  • 杜教筛是可以有神仙操作的,没事可以试试拿常见的一些函数去卷,毕竟任何积性函数卷任何积性函数结果还是积性函数。如循环之美

常见结论

\[\sum_{d|n}\mu(d)=[n=1]\ \sum_{d|n}\varphi(d)=n\ (\varphi*e)=(\mu*I)\ \sum_{d=1}^n\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d]\ =\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}[gcd(i,j)==1]\ =\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac nd\rfloor}\mu(i)\lfloor\frac n{id}\rfloor\lfloor\frac m{id}\rfloor\]
咕咕咕

原文地址:https://www.cnblogs.com/cx233666/p/10187205.html

时间: 2024-11-09 10:04:39

推式子小技巧的相关文章

ACM 刷题小技巧【转】

转载自URl-team ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. 2.有时候int型不够用,可以用long long或__int64型(两个下划线__). 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数.

iOS 知识-常用小技巧大杂烩

iOS 知识-常用小技巧大杂烩 1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图显示到屏幕上了,点击按钮 * 添加子视图也会调用这个方法 * 当本视图的大小发生改变的时候是会调用的 * 当子视图的frame发生改变的时候是会调用的 * 当删除子视图的时候是会调用的 3,NSString过滤特殊字符 // 定义一个特殊字符的集合 NSCharact

LINUX 小技巧备忘录

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. LINUX 小技巧备忘录,布布扣,bubuko.com

( 译、持续更新 ) JavaScript 上分小技巧(二)

考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... #29 - 使用缓存的记忆让递归函数加速运行波非那切数列(Fibonacci sequence)想必大家都不陌生(针对学霸而言,在这之前本兽完全不知道这是个什么鬼,虽然经常会用到递归),我们可以在20秒内写出以下的函数: var fibonacci = function(n){ return n < 2 ? n : fibonacci(n-1) + fibonacci(n-2); } 它确实是运行了,但是效率并不

轻量化ViewController的几个小技巧

轻量化ViewController MVC最令人头疼的问题可能就是随着项目愈发复杂,ViewController的代码也会变得越来越冗长.阅读了objc的<Lighter View Controllers>和<Clean Table >这两篇文章之后,总结了一些常用的轻量化ViewController的小技巧. 分离业务重点 既然要简化ViewController中的代码,那么在不改变原来实现方式的前提下,唯一的方法就是把一些可以不用放在ViewController中的代码转移出去

网站优化的3个seo小技巧

网站运营的基础就是优化,对于很多人来讲,想要把网站做好,提升排名,无疑是一件比较苦恼的事.但是做网站优化,实际上也并没有想的那么复杂,有时候我们可以运用一些优化技巧,就可以把网站优化做好. 做好网站优化,提升网站排名小技巧: 1.网站初期关键词的选取 一般来说,刚刚建好的新站是没有多少权重的,就像是没有任何基础的一个新品牌一样,但是并不代表这个网站就不重要了.要想快速将网站排名做到靠前,打好基础也是相当重要的.在网站初期,如果盲目的去跟风,选择一些竞争激烈的"大词",那无疑是自己给自己

Linux的95个小技巧

Linux的95个小技巧 by WEB全栈工程师 on 2012 年 03 月 27 日 这里总结了Linux使用中的一些小技巧 1.实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下:AUTOFSCK_DEF_CHECK=yesPROMPT=yes 2.改变文件或目录之最后修改时间(变为当前时间)执行格式:touch name ( name 可为文件或目录名称.) 3.如何设置login后欢迎信息 修改/etc/

acm比赛刷题小技巧

ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. 2.有时候int型不够用,可以用long long或__int64型(两个下划线__). 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数. printf("%I6

备:移动端开发资源和小技巧

(在github上看到的,转摘而来,如果有版权问题请联系我[email protected]) mobileTech A useful tools or tips list for mobile web application developing 这个项目收集移动端开发所需要的一些资源与小技巧 移动端统计 (from BiosSun) 可基于下方所列出的统计数据来决定您要兼容的设备及浏览器. 百度移动统计 友盟指数 CNZZ 桌面及移动端浏览器统计 全球移动端浏览器统计 工具类网站 HTML5