分类: 数学

18 篇文章

CF1886D Monocarp and the Set
Link 此题目可以从两个方向考虑,正着和倒着,倒着考虑比较容易,首先把所有的数放到一块,如果是'<'或者'>',就是去掉最左边或者最右边的数,这样显然只有一种可能,答案不变。 如果是'?',那么显然可以去掉中间的任意一个,所以答案就是$\times l-2$,那么对于$s_n-i$位置的$?$,他的贡献就是$n-i-1$倍,总而言之,…
平衡进制问题/对称的2k+1进制问题
定义平衡$2k+1$进制数码为$-k,-(k-1),,,0,,,k-1,k$,请求出一个十进制数的$2k+1$进制表示。 对于该问题,解决的思路是首先算出普通的$2k+1$进制下的表示,然后分别对每一位进行考虑. 1:这一位的数属于$0-k$ 不用管 2:这一位的数属于$k+1-2k$ 设此数等于$k+p$,则将下一位加1,然后这一位变成$-k-1…
CF 1867 E1. Salyg1n and Array (simple version)
Link 简单版本的结论还是很容易猜到的。 首先很容易想到的第一步就是尽可能地不覆盖地取尽可能多地区间,最后剩下了一小块。 然后在接着原来的指针一个一个地往右问,直到不能问了为止。 为什么这样是正确的呢?首先,在这样一步一步地往右查询的过程中,我们会发现总是前$k-1个数加上后面的一个数。 然后题面中把EVEN加粗了,因为你会发现,如果这样操作,前…
P4071 [SDOI2016] 排列计数
LLink 显然的,答案就是$Cn^m*D{n-m}$ #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #incl…
P2638 安全系统
LLink 本代码没有高精。 首先很容易想到的是,0,1之间互相并不干扰,所以说我们只要分开算0和1的方案数乘起来就可以了。 那么怎么算方案数呢? 首先可以想到的一点就是,如果我们确定了要放$a$个1的话,只要采用隔板法就可以确定了方案书。 有的可以没有怎么办?先给每一个隔间都放上一个球,答案就是$C{a+n}^{n-1}$ 所以$ans=\sum…
P2789 直线交点数
Link 首先很容易想到地一点就是平行的直线可以划分为一组,他们的每一条线是“相同的”,这样我们第一件事情就是计算可以有多少划分方式。 然后该怎样计算最后每一种情况是多少个交点呢? 我们考虑一下,每一条直线都会和不平行的直线产生交点,这样就可以计算每一条直线地贡献了。 $\frac{n^2-\sum{a_i^2}}{2}$就是答案。 最后统计一下就…
P4981 父子
这只是个结论题 我们都知道对于n个点的图,可以构成的无根树种类是$n^{n-2}$,既然是有根图,那就规定一个n,答案就是$n^{n-1}$ #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include&l…
P6154 游走
Lisa 用所有路径的长度的和除以所有路径的种类就可以了. #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; #def…
P5104 红包发红包
jennie 运用几何概型的知识可以知道,每个人期望取到的钱是前一个人的一半。 确实如此 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using name…
P3802 小魔女帕琪
Jennie 七个不一样魔法连续放的概率大家都会求 众所周知第几个取数不会影响取某一个数的概率(你平常怎么抽签的) 然后根据线性性质,我们只要算出某一个位置开始出现七个连续的期望,加起来, 这不都一样大嘛hhh #include #include #include #include #include using namespace std; tem…