
数学
文章平均质量分 73
HbFS-
di4CoveRy
展开
-
[BZOJ1965][Ahoi2005]SHUFFLE 洗牌 数学公式+乘法逆元
天呐太弱啦 首先我们很容易就能得到一个公式 若i为偶数,F[i]=G[i/2]F[i] = G[i/2] 否则,F[i]=G[(n+i+1)/2]F[i] = G[(n+i+1)/2]观察可得,i在下一轮洗牌的位置可以表示为 (2×i)mod(n+1) (2 \times i) mod (n+1) 设答案为x,则有方程 x×2m≡l x \times 2原创 2016-12-17 17:24:13 · 431 阅读 · 0 评论 -
[AtCoder2045]Circle and Many Triangles二分答案
二分答案,然后计算圆内大于等于这个面积的三角形的个数 计算个数可以通过枚举第一条边,二分第二条边的做法来做 为了保证不重复,可以另边权单调递增 特殊处理等边、等腰三角形这里写代码片原创 2017-03-24 15:00:38 · 399 阅读 · 0 评论 -
[Codeforces757E]Bash Plays with Functions数学
这题推一吨东西出来就能做了 首先发现F0(x)F_0(x)是2质因子个数2^{质因子个数} 这个东西是完全积性函数,当然也是非完全积性函数 把式子化简,就能得到Fr(x)F_r(x)也是非完全积性函数 在特殊处理一下Fr(pq)F_r(p^q)(p是质数)这样形式的答案 分解质因数乘起来就好#include <bits/stdc++.h>#define mod 1000000007#d原创 2017-03-27 14:04:59 · 632 阅读 · 0 评论 -
[BZOJ1856][SCOI2010]字符串
即为Catalan数的定义 输出Catalan第n项即可/************************************************************** Problem: 1856 User: di4CoveRy Language: C++ Result: Accepted Time:800 ms Memory:1288原创 2017-04-23 19:47:24 · 508 阅读 · 0 评论 -
一道有趣的数学证明题
试证明等式:∑j=1n∑k=j+1nCjnCkn(k−j)=nC22n2\sum_{j=1}^n\sum_{k=j+1}^nC_n^jC_n^k(k-j)=\frac{nC_{2n}^2}{2}从北京到广州两个半小时的飞机,上飞机前把题目抄在草稿纸上,心想飞机上无聊正好把这题给做了,做完看看电影睡睡觉估计就到了。然而这道题着实做了两个半小时,距离降落30分钟才搞定完整的解法,把解法在整理一遍的时间都原创 2017-05-23 20:45:02 · 2031 阅读 · 0 评论 -
[BZOJ4869][Shoi2017]相逢是问候 扩展欧拉定理+势能线段树
根据扩展欧拉定理 当x≥ϕ(p) x\geq \phi(p)时有ax≡ax%ϕ(p)+ϕ(p)(modp)a^x\equiv a^{x \% \phi(p)+\phi(p)}(mod p) 我们发现在至多进行tt次操作后,a≡ca(modp)a \equiv c^a(modp),t为进行p=ϕ(p)p=\phi(p)多少次之后p=1p=1,tt的大小为O(log2p)O(log_2p)级别的原创 2017-05-27 14:19:43 · 597 阅读 · 0 评论 -
[BZOJ4872][Shoi2017]分手是祝愿 数学期望
先看N=k的,考虑一下怎么用最少步数解决这个问题。 一个做法是从高位到低位,没遇到一个开着的灯就将它关闭,易证这样的策略是最优的,而且是唯一的。 问题转化为目前有n个开关,其中有t个开关需要被按奇数次,求期望步数。F[t]表示由剩t个开关到剩t-1个开关所需要的期望步数。 Ft=tn+n−tn(1+Ft+1+Ft)F_t=\frac{t}{n}+\frac{n-t}{n}(1+F_{t+1}+原创 2017-05-29 22:23:29 · 965 阅读 · 0 评论 -
[BZOJ4870][Shoi2017]组合数问题 矩阵快速幂
诶感觉这题很套路啊 听说赛场上写出来的人不多 可能比赛的时候比较紧张这题放最后一题没那么好像吧 解法到不是特别难相当于求一个模意义下的杨辉三角嘛 塞到矩阵里面转移就好了#include <bits/stdc++.h>#define N 55using namespace std;typedef long long LL;inline int rd() { int x=0,f=原创 2017-05-29 22:32:56 · 564 阅读 · 0 评论 -
[BZOJ4816][Sdoi2017]数字表格 数学
考虑每个fif_i对答案的贡献,就能得到式子 ∑k=1nf∑d|kμ(d)⌊nkd⌋⌊mkd⌋k\sum_{k=1}^nf_k^{\sum_{d|k}\mu (d)\lfloor \frac{n}{kd}\rfloor \lfloor \frac{m}{kd}\rfloor} 转化成枚举kdkd,令T=kdT=kd ∏T=1n(∏d|Tfμ(Td)d)⌊nT⌋⌊mT⌋\prod_{T=1}^n原创 2017-05-31 16:51:08 · 449 阅读 · 0 评论 -
[UOJ#185][ZJOI2016] 小星星
将树镶嵌在图里面,等价于用树去覆盖这个图,每个点都被覆盖一次。 每个点都被覆盖一次,等价于,每个点至少被覆盖一次方案数=所有点都可以覆盖-至少有1个点未被覆盖+至少有2个点未被覆盖-至少有3个点未被覆盖……(这里的图上的点可以被树上的点重复覆盖) 求某些点不能被覆盖的方案数,可以用树上dp完成,Fi,jF_{i,j}表示树上第ii个点对应图上第jj个点,该子树的方案数 爆枚图上有哪些点一定不能原创 2017-06-15 19:52:57 · 525 阅读 · 0 评论 -
[BZOJ2326][HNOI2011]数学作业 矩阵快速幂
那玩意儿一看就要分段统计,递推式可以求一求 $F[n] = 10^k * F[n-1] +n$ 这东西是可以装进矩阵的,矩阵里存三个元素,F[n],n,1F[n],n,1 快速幂乘着玩儿就行了/************************************************************** Problem: 2326 User: di4CoveRy原创 2017-03-13 22:11:58 · 328 阅读 · 0 评论 -
[BZOJ4591][Shoi2015]超能粒子炮·改
解法很好想哟 2333是个质数,而且很小,Lucas走起 诶不会用编辑器打同余符号,题解不写了/************************************************************** Problem: 4591 User: di4CoveRy Language: C++ Result: Accepted Time:45原创 2017-02-01 12:19:08 · 619 阅读 · 0 评论 -
[BZOJ4563][Haoi2016]放棋子 错排公式+高精度
诶我感觉我在刷水题啊#include <iostream>#include <cstdio>#define N 2050using namespace std;int n;struct num{ int d[N],w; void print() { for (int i=w;i>=1;i--) printf("%d",d[i]); printf("\n");原创 2017-01-30 15:38:25 · 516 阅读 · 0 评论 -
[BZOJ1485][HNOI2009]有趣的数列 catalan数
和老黄人一起切的这道题打个表,然后发现是Catalan数答案就是Catalan数第n位注意需要特殊的技巧防止超时#include #include #include #include #define N 2000050#define tp 2000000using namespace std;typedef long long LL;int F[N],p[N],ys原创 2016-12-17 15:50:26 · 394 阅读 · 0 评论 -
[acm/icpc2016北京赛区][hihocoder1430] A Boring Problem 推公式
无脑推公式题 一开始推出来O(nk2) O(nk^2) 的超时了,后来把复杂度降低到O(nk) O(nk) 才跑过去对于每个答案ans[i]ans[i],存在表达式 ans[i]=∑ij=1F[j][i] ans[i] = \sum_{j=1}^i F[j][i] 令s[i]s[i]为前缀和 F[j][i]=(s[i]−s[j−1])k F[j][i] = (s[i]-s[j-1])^k原创 2017-01-01 22:36:06 · 1601 阅读 · 0 评论 -
[HDU5996] [BestCoder Round #90] dingyeye loves stone nim游戏
一道nim游戏题目(好像叫阶梯博弈?) 深度为偶数的点扔掉,深度为奇数的点xor起来看是不是0#include <iostream>#include <cstdio>#define N 200050using namespace std;int n,fa[N],dep[N];void solve() { scanf("%d",&n); for (int i=1;i<=n-1;原创 2016-12-18 12:08:42 · 288 阅读 · 0 评论 -
[玲珑杯#Round5]Grid Point 拉格朗日插值
答案为 g(n)=∑ni=0(2n+1)k−(2i+1)kg(n) = \sum_{i=0}^n(2n+1)^k-(2i+1)^k令这个k+1次多项式为f(x)f(x) 令s=k+1 根据拉格朗日插值公式 f(x)=∑si=0pi∗yi f(x) = \sum_{i=0}^s p_i*y_i 其中 pi=∏si=0(x−xi)∏si=0(xj−xi)p_i=\frac {\prod_{原创 2017-01-19 22:53:50 · 487 阅读 · 0 评论 -
[BZOJ3997][TJOI2016]组合数学 平面图
平面图相关 从左下扫到右上即可#include <iostream>#include <cstdio>#include <cstring>#define N 1050using namespace std;typedef long long LL;int v[N][N],n,m;LL F[N][N];void ut(LL &x,LL y) { x = max(x,y); }int m原创 2017-01-20 21:29:55 · 420 阅读 · 0 评论 -
[GDKOI2017Day1T3排队 矩阵快速幂+插头dp
#include <iostream>#include <cstdio>#include <cassert>#include <cstring>#define mod 1000000007#define N 66*2using namespace std;int F[10000050],n,p,q,E;struct Matrix{ int a,d[N][N]; void原创 2017-02-21 22:27:48 · 720 阅读 · 0 评论 -
[BZOJ4710][Jsoi2011]分特产 容斥原理
容斥一发即可#include <iostream>#include <cstdio>#define mod 1000000007#define N 2050using namespace std;typedef long long LL;LL C[N][N],F[N],ans;int n,m;int a[N];int main() { scanf("%d%d",&n,&m);原创 2017-01-24 09:31:58 · 332 阅读 · 0 评论 -
[51nod 1362]搬箱子 组合数公式
天呐51nod是不是特别喜欢卡常啊这题一直推公式推到复杂度足够低就可以了,感谢班上的数竞大爷毛公给我的指点 枚举一下斜向下的操作有多少次,令它为aa,令竖着走为bb,a+b=na+b=n总共有n+m-a次操作,其中有三种操作,可以很简单的得到答案 ans=∑mi=0∑na=0Can+m−aCbn+m−2a ans = \sum_{i=0}^m \sum_{a=0}^n C_{n+m-a}^aC_原创 2017-01-24 23:16:09 · 868 阅读 · 0 评论 -
[BZOJ4710][Jsoi2011]分特产 容斥原理
直接容斥一发即可/************************************************************** Problem: 4710 User: di4CoveRy Language: C++ Result: Accepted Time:632 ms Memory:34144 kb****************原创 2017-01-24 23:18:55 · 512 阅读 · 0 评论 -
Codeforces 249E:Endless Matrix
ii,jj的二维前缀和 若x≥yx\geq y y(4x+3x2+2x3−y−3xy+y3)6\frac{y(4x+3x^2+2x^3-y-3xy+y^3)}{6} 否则 (−x+x3+4y+3xy−3y2+2y3)x6\frac{(-x+x^3+4y+3xy-3y^2+2y^3)x}{6}原创 2017-06-17 20:29:12 · 381 阅读 · 0 评论