关闭

生成函数-背包问题学习笔记

结合 ACdreamer 以及 zhoufenqin 的博客终于弄懂了如何用生成函数解一类特定的大背包问题。首先要介绍一些重要的公式、数列、函数 xn−1=(x−1)(1+x+x2+x3+...+xn−1) x^n - 1 = (x - 1)(1+x+x^2+x^3+...+x^{n-1}) 由于给你一个生成函数G(x)G(x),我们需要的只是每一个xix^i的系数,所以不会去求一个比方说G(...
阅读(55) 评论(0)

Mobius反演总结

刷了一些浅显的反演题目, 做一个总结知识点1给定n个数(可以是1-n), 求有多少数与x互质 f(x)=∑d|xu[d]∗cnt[d]f(x) = \sum_{d|x}u[d]*cnt[d] 其中u[d]u[d]是mobius函数cnt[d]cnt[d]表示原n个数中有多少个d的倍数 这更像一个容斥原理的知识点1.1:CodeForces 547C直接套一下知识点1的公式就可以了。1.2:阿里...
阅读(80) 评论(0)

矩阵·叉姐出的两道Determinant

首先要做这两道题,需要掌握的基础知识有 余子式MijM_{ij}、代数余子式AijA_{ij}、伴随矩阵、逆矩阵 A∗=1|A|A−1A^{*} = \frac{1}{|A|}A^{-1} 逆矩阵存在条件: 满秩 行秩等于列秩 湘潭A题意: 给一个 (n-1) * n 的矩阵 对于每一列, 求去掉这一列的余下的 (n-1) 阶行列式的determinant n的取值范围为200 赛上思...
阅读(130) 评论(0)

大白 数学专题 部分例题习题总结

small trickUVA 11538 Chess Queen: ∑ni=1C2n=12∑ni=1i2−1=12(∑ni=1i2−∑ni=11)\sum_{i=1}^{n}C_{n}^{2} = \frac{1}{2}\sum_{i=1}^{n}i^2-1=\frac{1}{2}(\sum_{i=1}^{n}i^2-\sum_{i=1}^{n}1) 这样的话这个式子就可以O(1)计算,我的第一...
阅读(79) 评论(0)

大白 计算几何专题 凸包、半平面交、平面区域 部分例题练习题总结

LA 2797 Monster Trap 1. 姿势,学习学习, 做法就是将每条线段都延长一些些, 然后判断点到点是否可以直接到达再bfs。 2. 最重要的就是避免穿墙, 除了书上讲的情况外,还要排除 0 0 4 0 1 0 2 0 这一组数据 或者 0 0 2 0 2 0 4 0 这一组数据 当然,如果判断点在线段上的条件不同对这组数据的鲁棒性就不同。 代码:...
阅读(105) 评论(0)

Codeforces 785D 范德蒙恒等式的变形

先说要用到的两个公式: Cnm=Cnm−1+Cn−1m−1C_{m}^{n} = C_{m-1}^{n} + C_{m-1}^{n-1} 注意当 n>mn > m 时 Cnm==0C_{m}^{n} == 0 范德蒙恒等式 Ckm+n=∑i=0kCimCk−inC_{m+n}^{k} = \sum_{i=0}^{k}C_{m}^{i}C_{n}^{k-i} 这道题的话很容易发现要求的是: 对于每一...
阅读(131) 评论(0)

[The Problem to Slow Down You] 后缀自动机 + 马拉车做法

1. 由于不会回文树, 看到题目感觉很SAM 2. 仔细一想可以发现 SAM 中一个节点所代表的字符串最多只有一个是回文串 以同一个字母结尾的不同回文串 出现的位置不可能完全相同 说明一个长为n的串种出现的回文子串种类不超过n种 3.在新建一个结点的时候如何判断——该节点所存储的字符串中是否有回文串呢? 如果有的话,必然是以当前字符结尾的最长的那个回文串 Manache...
阅读(71) 评论(0)

UVA 11978 / Lightoj 1358 圆与简单多边形交的面积

像UVA 11177的话是一个圆与多边形相交的特殊情况, 圆心在原点, 原点一定在凸多边形内部,可以用特殊的做法做 而这道题的话就需要这类问题的通用做法 在计算多边形面积的时候,我们任意找一个点,与多边形上任意一条边形成一个三角形,计算N个三角形的有向面积和 在圆与多边形交的情况下,这个点就可以是圆心,求的是N个三角形与圆相交的有向面积。 三角形与圆相交可以分为四种情况。具体可见代码,要注...
阅读(68) 评论(0)

HDU 4436 DAG上dp计算数据和

主要想解决一个从这道题上面引申出的问题 假设用这样一个DAG保存了数据{1, 11, 12, 123, 124, 1234, 23, 24, 234, 4} 如何O(n)时间求解其数据的和? 方法:维护以本节点结尾的数据的和,从S到本节点的路径数 设当前节点为u, 子节点为v, 子节点有值val sum[v] += sum[u] * 10 + cnt[u] * val; cnt[...
阅读(78) 评论(0)

HDU 5378 树形dp转化为线性 计数转化为概率

这道题如果无脑dp的话,复杂度应该至少在(n^3)这个级别,而且转移的式子好像十分容易出错?  也许从计数的角度上来说根本列不出来? 因为两棵子树的方案会互相影响!!!        重点①: 首先计数可以转化为概率,当然不能用浮点,因为%质数,所以采用逆元 重点②: 给出的是一棵树,但不能掉进思维陷进,处理完树的一些节点信息后,可以用线性的dp做!!!(第一次做到这样的题目) 本...
阅读(56) 评论(0)

POJ 3729 求f(x) = K的数量转化为求两个大于等于的差 + 刘汝佳后缀数组模板的细节

先说刘汝佳后缀数组模板。 如果这份模板什么也不改去刷挑战的后缀数组题,简直要哭。从POJ 1509(后面练习的第一题, 用后缀数组求最小表示法)开始就A不动了 1. 两处越界//这个自己敲一遍很好发现,其实我很奇怪为什么不改也能AC…… void RankAndHeight(){ for (int i = 0; i < n; ++i) Rank[sa[i]] = i; int k = 0...
阅读(50) 评论(0)

POJ 3581 启发:后缀数组求最小表示

http://poj.org/problem?id=3581 1.第一段是显然的,reverse原数组然后求后缀数组取sa[0]即可……当然要注意每段不能为空这个特点 2.在求第二段的时候就会遇到这道题的难点,如果单纯求后缀数组取sa[0],很容易举出反例 7 10 0 2 2 2 2 3 或者 8 10 0 3 1 2 3 1 5 后缀数组在比较大小的时候 是默认"2" 比 "2...
阅读(143) 评论(0)

Codeforces 755F 规模较大的装箱dp

http://codeforces.com/problemset/problem/755/F max只要仔细一点就好了,关键是求min 1.因为送礼数组是1-n的排列,所以首先把所有送礼的圈找出来。 2.简单贪心后,min只有可能是K或者K+1,到底是哪一个就看有没有 某些圈的size和刚好是K 3.然后好像就变成了一个(1e6*1e6)的装箱dp。就算bitset优化复杂度也在1e1...
阅读(140) 评论(0)

Codeforces 757E 积性函数

1.首先 百度学习积性函数定义 或者 wiki学multiplicative function...
阅读(77) 评论(0)

HDU 5297 迭代

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5297 1.看完题有一个大概思路:二分加容斥,容斥的话62以内大约有15个左右的质数,每次容斥如果2^15左肯定超时,但是可以发现很多状态其实不用考虑,比如x^91在long long范围内根本不用考虑。可以先预处理一下,最多需要考虑大约40个状态。这样写了二分交了居然T了。。。 2.一下子搞不清楚能不...
阅读(51) 评论(0)

用投色子问题分析为什么顺着推、期望反着推 / 概率论

去年寒假训练的时候做HDU 3853第一次知道概率要顺着推,期望要逆着推 当时大概知道期望顺着求会重复计算但不是很清楚根本原因。 学了概率论之后就可以用全概率、全期望公式解决这个问题 -----------------------------------------------------------------------------------------------------...
阅读(82) 评论(0)

Codeforces 739C 线段树 区间合并问题

网上搜到的解法,总结下自己学到的东西 1. 以前也写过类似的线段树,不过当时没有 区间合并问题这个概念,可能那道题比较裸,大概写一下也就过了,没学到什么。这道题让我知道线段树还能解决一类区间合并问题,学习了这类线段树的公式化?写法。 2. 将高度数组转化为一个高度的差值数组,优点是题目给出一次更改,只要在线段树中做两次单点更新就好了。 这也是我第一次根据数组建树完后,每次更新还需要修改数组内...
阅读(234) 评论(0)

Codeforeces 342E 对操作分块

1. 在此之前我掌握的分块算法仅指 用 Sqrt(n)的时间回答一次询问 2. 这道题和之前做过的一道AC-machine的题目非常像,也是分块做法。一批一批的处理动态更新,询问的结果一般由两部分共同组成。 3. 另外这道题更新的时候显然bfs比dfs更优秀 #include #include #include #include #include #include #in...
阅读(90) 评论(0)

HDU 5724 chess sg函数学习

再次做了下这个题目,学习了下sg函数 在sg函数中  最终状态的sg值为0 其余状态的sg值为其子状态中未出现过的第一个自然数值 在多组游戏同时进行的情况下,整个组合博弈的sg值为不同组sg值的异或 const int maxn = 2e6 + 4; const int maxm = 2e1 + 4; const double pi = acos(-1.0); int sg[max...
阅读(89) 评论(0)

Codeforces 737D

从博弈的角度来考虑,如果状态全部开下的话, 需要4000*4000*2*100左右的数组,空间不够。 但是可以发现状态数并没有那么多,如果Igor取了两千张paper的话,Zhenya能取得paper数量范围应该在1900-2100之间 如果动态分配空间的话应该没有问题。 然而赛上十分蠢的选择了3200W的map。果断MLE CASE 1,因为每个map天生需要几十字节的空间 而且map...
阅读(136) 评论(0)
32条 共2页1 2 下一页 尾页
    个人资料
    • 访问:3587次
    • 积分:316
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条