![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
组合数学
three trees
三木无林,却以成森
展开
-
hdu 4466 Triangle dp+数学
分析我们总共有n长的绳子,要求给绳子分段,每段都可以组成三角形,且所有三角形相似,三角形有顺序,问方案数我们可以考虑一个F(x)F(x)F(x)为周长为x的三角形的个数考虑三边a<=b<=ca<=b<=ca<=b<=c如果b==cb==cb==c我们可以知道c∈[x−12,⌈x3⌉]c\in[\frac{x-1}{2},\lceil\frac{x}{3...原创 2019-11-11 20:19:40 · 99 阅读 · 0 评论 -
codeforces 571A Lengthening Sticks 组合数学 插板法
题意给我们四个数,a,b,c,la,b,c,la,b,c,l问:a′=a+x1b′=b+x2c′=c+x3x1+x2+x3<=la'=a+x_1\quad b'=b+x_2\quad c'=c+x_3\quad x_1+x_2+x_3<=la′=a+x1b′=b+x2c′=c+x3x1+x2+x3<=l且a′,b′,c′a',b',c'a′,b′,c′可以组成三角...原创 2019-11-06 21:17:42 · 216 阅读 · 0 评论 -
codeforces 560E dp+组合数学
题意在一个二维坐标系中,起点在(1,1)(1,1)(1,1),终点在(h,w)(h,w)(h,w),期间只能向上,向右,斜向上并且不能经过坏点的方案数。坏点有n个分析我们分析两个坏点之间的方案数:Cxi−xj+yi−yjxi−xjC_{x_i-x_j+y_i-y_j}^{x_i-x_j}Cxi−xj+yi−yjxi−xj我们定义dp[i]dp[i]dp[i]为从(1,1)(...原创 2019-10-28 19:22:34 · 122 阅读 · 0 评论 -
gym 101981 G Pyramid 思维
题意给我们一个边长为n的正三角形,这个三角形由n∗(n+1)2\frac{n*(n+1)}{2}2n∗(n+1)个单位边长正三角形组成(下图黑色三角形)对于一个边长为i的三角形,他在边长为n的三角形里面有(n−i+1)∗(n−i+2)2\frac{(n-i+1)*(n-i+2)}{2}2(n−i+1)∗(n−i+2)个对于一个边长为i的三角形,除了本身外,各边之间可以组成(i-1)个三角...原创 2019-10-27 21:30:37 · 272 阅读 · 0 评论 -
hdu 4372 Count the Buildings 第一类斯特林数
第一类斯特林数对于n个数,分成k组,每组是一个环排列(非空)S(n,k)=(n−1)∗S(n−1,r)+S(n−1,r−1)S(n,k)=(n-1)*S(n-1,r)+S(n-1,r-1)S(n,k)=(n−1)∗S(n−1,r)+S(n−1,r−1)分析一共n个楼,高度分别为1~n,现在从左边往右边看是f个楼,从右边往左边看是b个楼我们发现最高楼两边都可以看见,故忽略不计从最高楼到两...原创 2019-10-26 22:47:35 · 100 阅读 · 0 评论 -
hdu 5651 xiaoxin juju needs help 统计字符出现次数
题意题目给了个字符串,可以随意变化字符位置,但不可以删除字符,求一共可以组成几个回文串(只包含26个小写英文字母)分析我们统计每个字母出现的次数,若有两个及两个以上的奇数次字母,那肯定无法构成回文串若只有一个奇数次字母,我们可以将一个这个字母放在字符串中间,剩下的都是偶数次字母所以最终结果:ans=(∑i=025num[i])!∏i=025(num[i]!)ans=\frac{(\s...原创 2019-10-25 18:45:19 · 107 阅读 · 0 评论 -
hdu 4810 位运算+组合数学
题意n个数,第iii输出求从n个数里选iii个数异或求和因为异或只与每一位有关,并不产生进位,所以我们可以对每个数转化成二进制#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;template <typename T>...原创 2019-10-23 23:00:49 · 184 阅读 · 0 评论 -
hdu 1808 抽屉原理
抽屉原理说的简单一点就是,n+1个物品放n个箱子,必定有一个箱子有两个物品(无空箱)题意m个小孩在万圣节去n家住户要糖,每个住户有一定数量的糖,并且如果有小孩来要,就会全部给出去。先要要求m个小孩最后要到的糖的数量能不能均分,求任意一组方案分析由于n>=mn>=mn>=m,故肯定有解我们设sum[i]sum[i]sum[i]为住户的糖的前缀和由上面知,sumsum...原创 2019-10-23 20:50:12 · 246 阅读 · 0 评论 -
错排公式
错排问题对于n个人有n个座位,现在求每个人都不再自己座位上的方案数n个人相互送礼也是该类问题相关公式我们容易得到:D[0]=0,D[1]=0,D[2]=1D[0]=0,D[1]=0,D[2]=1D[0]=0,D[1]=0,D[2]=1现在有nnn个位置,我们考虑1号位置,如果该位置的原本的主人现在在kkk号位置,那么我们考虑kkk号位置,他可以在1号位置,这时有两个人不再自己的位置上,即...原创 2019-10-21 21:18:05 · 164 阅读 · 0 评论 -
codeforces 1236B 组合数学
题意n种小球放入m个不同的盒子中,要求在所有盒子中,包含n种小球分析我们知道m个盒子自由的组合,有2m2^{m}2m种对于每种小球,我们要保证他存在,所以有2m−12^{m}-12m−1种现在有n种小球,所以答案为:(2m−1)n(2^{m}-1)^{n}(2m−1)n#include <bits/stdc++.h>using namespace std;typedef...原创 2019-10-18 20:13:31 · 177 阅读 · 0 评论 -
hdu4675 GCD of Sequence 组合数学+反演
分析我们设f(d)f(d)f(d)为gcd=d\gcd=dgcd=d的数量,F(d)F(d)F(d)为gcd\gcdgcd为ddd或者ddd的倍数的数量我们有反演(假设n=3):f(d)=∑d∣tμ(td)F(t)f(d)=\sum_{d \mid t}\mu(\frac{t}{d})F(t)f(d)=∑d∣tμ(dt)F(t)所以这道题难在F(t)F(t)F(t)怎么求:我们设n...原创 2019-10-17 13:01:02 · 132 阅读 · 0 评论 -
卡特兰数--相关公式
H[i]=H[i−1]∗(4∗i−2)(i+1)H[i]=\frac{H[i-1]*(4*i-2)}{(i+1)}H[i]=(i+1)H[i−1]∗(4∗i−2)原创 2019-10-09 22:00:39 · 444 阅读 · 0 评论 -
卢卡斯定理---板子
先贴个代码,这个是p是素数的情况#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef unsigned long long ull;const int N = 2e5 + 5;ll fast_pow(ll a, ll b, ll p) { ll c = 1; while(b) {if(...原创 2019-09-25 23:39:13 · 213 阅读 · 0 评论