数学
文章平均质量分 50
那页
这个作者很懒,什么都没留下…
展开
-
xiaoxin juju needs help - 组合公式
学组合数不久,对二项式定理的熟悉程度还是太低了。 这是一个经典的球与袋问题。求将n种球放在m个袋子里的方法。∑num[i]=m\sum_{num[i]}=m∑num[i]=m 根据二项式可以推理,首先若球全部不同,即有m!m!m!种方法,除去有球相同的情况只需m!/num[i]!m!/num[i]!m!/num[i]!。 #include <bits/stdc++.h> using namespace std; #define int long long int num[30]; const原创 2021-08-18 19:04:30 · 121 阅读 · 0 评论 -
杭电多校第9场1007 Integers Have Friends 2.0
题意 从一个数列中找出一个子序列,使得子序列每个数模一个数同余,求最长长度。 首先我们容易发现,对于模数2,一个数要么余1,要么余0,那么一个序列至少有n/2个同余的。然后我们写一个式子 amod x=bmod xa\mod x = b \mod xamodx=bmodx a−bmod x=0a-b \mod x = 0a−bmodx=0 即a与b之差即同余的模数,这个余数可以被拆成很多质因数,也是可以使a,b同余的模数。 一个小与4e12的数最多能由11个不同的质因数相乘得(这步可以打表证明)。那么原创 2021-08-18 12:37:54 · 137 阅读 · 0 评论 -
hdu多校8-7060 Separated Number 组合数
题意 给你一个非常长的整数,请你把整数分成连续的k段,请你求每种分法每一段的和的和。 如100: ∑\sum∑((100),(1)(00),(10)(0),(1)(0)(0)) = 112 思路 经过简单的思考,我们可以想到,对于每一段数字,他的长度必在[1,len-k+1]之间。再深入思考,一段数其实并不好想,我们针对每一个数进行拆解。即取出其中一个数字num,可能有num10,num100,…。 所以只需要想象一个隔板,枚举隔板与num之间有几个0,剩下的隔板只要不在这中间都可以随便插。但是如果手推一下原创 2021-08-12 20:52:48 · 173 阅读 · 0 评论 -
P3048 [USACO12FEB]Cow IDs S
题意 FJ给他的奶牛用二进制进行编号,每个编号恰好包含K 个"1" (1 <= K <= 10),且必须是1开头。FJ按升序编号,第一个编号是由K个"1"组成。 请问第N(1 <= N <= 10^7)个编号是什么。 首先手动模拟样例,发现如果从后往前枚举,当第i位为1后面总的情况都是C(i-1,k),k为当前1个数,每确定一个1,k都会减小。 那么不就剩暴力了吗,预处理组合数,k只需要10个,所以底数即使开1e6个都是够的,也不要怕爆int,因为能爆int得数我们不可能取,所以爆i原创 2021-08-11 14:57:11 · 142 阅读 · 0 评论 -
Link with Balls - hdu 7047 - 生成函数解法
题意 给出2n个箱子,可以从2x-1th箱子取kx个球,可以从2xth箱子取至多x个球,那么最终取m个球有几种方法。 思路 如果了解过生成函数相关知识的话,应该不难发现每个箱子都有各自的生成函数。 F(x)=1+x+x2+....+xn (the n−th)F(x) = 1 + x + x ^2+ .... + x ^n \ \ \ (the \ \ \ \ n-th )F(x)=1+x+x2+....+xn &nb原创 2021-08-11 13:39:35 · 175 阅读 · 0 评论 -
CF1042E Vasya and Magic Matrix
传送门 题目看完立马就有想法的题。首先肯定不能二维做,先把矩阵拍成一维,以权值排序。然后肯定就是O(n)的做法。 根据题意,转移只能是单向的,那么大的权值肯定由小的转移而来,设dp为i位置值的期望 那么有转移: dp[i]=∑j=0i−1dp[j]+(xi−xj)2+(yi−yj)2idp[i] = \frac{\sum_{j=0}^{i-1} dp[j] + (x_i-x_j)^2+(y_i - y_j)^2} {i}dp[i]=i∑j=0i−1dp[j]+(xi−xj)2+(yi−yj)2原创 2021-08-04 19:50:50 · 102 阅读 · 0 评论 -
P5104 红包发红包 期望入门
题意: 假如现在有w元,那么你抢红包能抢到的钱就是[0,w]等概率均匀随机出的一个实数x。 现在红包发了一个w元的红包,有n个人来抢。那么请问第kk个人期望抢到多少钱? 思路 首先我们先算第一个人的期望,他选择每种金额的概率相等。故易得: F(x)=xw(0<=x<=w)F(x) = \frac{x}{w}(0<= x <= w)F(x)=wx(0<=x<=w) 这是一个离散型函数,我们对其求导得 f(x)=1wf(x) = \frac{1}{w}f(x)=w1 E=原创 2021-08-04 15:24:55 · 131 阅读 · 0 评论 -
CF449D Jzzhu and Numbers
传送门 很有意思的题目,考验对容斥的熟悉程度和对状压dp的理解。 首先我们再在翻译的基础上转化一下题意。 设f[i]为恰好i个1,g[i]为至少i个1。 也就是一个子集满足&的结果1的个数恰好为0个。因为至少0个的包含至少一个的,形成了容斥。 f[0]=∑i=0(−1)ig[i]\ f[0] = \sum_{i=0}(-1)^ig[i] f[0]=i=0∑(−1)ig[i] 故我们的任务变成了统计g[i]。这时候用SOS dp,令形如i&k==i的像这样进行转移dp.原创 2021-07-23 17:03:46 · 184 阅读 · 0 评论 -
UVALive 7040 Color -二项式反演
二项式反演裸题+组合数递推 思路待补充 #include "bits/stdc++.h" #define int long long const int maxn = 1e5 + 10; const int MAXN = 1e6 + 10; const int mod = 1e9 + 7; using namespace std; void Exgcd(int a, int b, int &x, int &y) { if(b == 0) { x = 1;原创 2021-07-17 10:44:46 · 113 阅读 · 0 评论