
数学小题
linkfqy
A link to FQY.
展开
-
【快速幂、组合数学】BZOJ1008 [HNOI2008]越狱
题面在这里BZOJ竟然有这么水的题……考虑不越狱的状态,显然是m⋅(m−1)n−1m\cdot (m-1)^{n-1} 因为第一个人的信仰随意,后面每个人的信仰都只有n-1种选择总共有mnm^n种方案,那么答案就是mn−m⋅(m−1)n−1m^n-m\cdot (m-1)^{n-1}示例程序:原创 2017-06-30 09:16:43 · 975 阅读 · 6 评论 -
【欧拉函数】BZOJ2705 [SDOI2012]Longge的问题
题面在这里考虑如下: ∑i=1n(i,n)=∑d|nd∑id≤n[(id,n)=d]=∑d|nd∑i=1nd[(i,nd)=1]=∑d|nd⋅φ(nd)\sum_{i=1}^n (i,n) \\=\sum_{d|n}d\sum_{id\le n} [(id,n)=d] \\=\sum_{d|n}d\sum_{i=1}^{\frac n d} [(i,\frac n d)=1] \\=原创 2017-12-10 19:08:29 · 316 阅读 · 0 评论 -
【组合数】51Nod 1627 瞬间移动
题面在这里考虑枚举移动的步数ii那么答案就是 ∑i=1i<min(n,m)Ci−1n−2⋅Ci−1m−2\sum_{i=1}^{i<min(n,m)}C_{n-2}^{i-1}\cdot C_{m-2}^{i-1}示例程序:原创 2017-10-25 16:42:07 · 828 阅读 · 0 评论 -
【乱搞】BZOJ3751(UOJ#20)[NOIP2014]解方程
题面在这里还可以双倍经验本题其实利用了这样一个显然的事实: f(x)=0⇒f(x) mod p=0f(x)=0 \Rightarrow f(x)\space mod \space p=0 但是反过来不一定成立那么多取几个质数,如果对于所有的质数都成立就假装成立好了示例程序:原创 2017-10-12 21:08:09 · 774 阅读 · 0 评论 -
【乱搞】51Nod 1622 集合对
题面在这里数学题,看懂了就很好做。下面给出证明:首先,集合的异或操作是可以类比位运算的异或操作的。对于一个集合AA,可以给全集的每个元素赋一个01变量,表示是否在集合AA中出现过这样A xor BA\text{ xor }B其实就是两个二进制数异或了然后这个东西是满足交换律和结合律的然后: (P xor A) xor (Q xor B)=A xor B(P xor Q) xor (A xor B)原创 2017-10-29 20:41:37 · 731 阅读 · 0 评论 -
【数学】51Nod 1421 最大MOD值
题面在这里有个想法就是先排序,对每个aia_i分别找[ai,2ai−1],[2ai,3ai−1],[3ai,4ai−1]…[a_i,2a_i-1],[2a_i,3a_i-1],[3a_i,4a_i-1]\dots中的最大值复杂度对吗?其实这个就是调和级数: ∑i=1n1i\sum_{i=1}^n\frac 1 i 可以证明这个是O(ln n)O(ln\space n)的所以总复杂度是O(n⋅原创 2017-10-21 07:56:25 · 709 阅读 · 0 评论 -
【置换群】51Nod 1125交换机器的最小代价
题面在这里ZZK说这是傻逼题但是我觉得好难啊显然,要使最终归为有序,必定构成若干个置换群对于每个置换群有两种方案:找群里最小的点,交换一圈群里最小点与群外最小点交换,交换一圈,再换回来然后就没有然后了示例程序:原创 2017-09-19 20:59:17 · 875 阅读 · 0 评论 -
【数学结论】51Nod 1674 区间的价值 V2
题面在这里很容易发现,一个序列的前缀and/or值可分为log(V)log(V)块其中V是序列中元素的最大值然后这题就很好做了枚举区间的右端点i,同时维护每一个块的范围和值显然有and块和or块两种分开维护那么i往后推一个,其实就是把每个块的值and/or上当前位置,再加上单点i然后合并相邻且值相等的块扫一波统计答案即可示例程序:原创 2017-09-10 15:31:02 · 751 阅读 · 0 评论 -
【反序表+DP】51Nod 1020 逆序排列
题面在这里科普一下关于反序表的知识:一个1到n的排列的反序表第 ii 位表示排列中 ii 的左边有几个比 ii 大的。反序表每位的取值范围:[0,0],[0,1],[0,2],[0,3]...,[0,n−1][0,0],[0,1],[0,2],[0,3]...,[0,n-1]排列和反序表是一一对应的关系。反序表每位相互独立。然后这题就是傻逼DP了示例程序:原创 2017-09-10 15:21:47 · 714 阅读 · 0 评论 -
【数论+搜索】BZOJ3629 [JLOI2014]聪明的燕姿
题面在这里通过数论知识可以得到:若x=∏ti=1pkiix=\prod_{i=1}^t p_i^{k_i},则xx的约数个数为∏ti=1(1+ki)\prod_{i=1}^t (1+k_i)类似地,xx的约数之和为∏ti=1∑kij=0pji\prod_{i=1}^t \sum_{j=0}^{k_i} p_i^j所以暴搜S的每个素因子取几次方就可以了示例程序:原创 2017-09-10 15:14:11 · 692 阅读 · 0 评论 -
【数论乱搞】BZOJ1041 [HAOI2008]圆上的整点
题面在这里其实就是乱搞题首先只要考虑第一象限的整点就可以了,答案可以很快由此得到考虑如下: r2=x2+y2⇒y2=(r−x)(r+x)r^2=x^2+y^2 \\\Rightarrow y^2=(r-x)(r+x) \\ 设(r−x)(r-x)和(r+x)(r+x)的最大公约数为dd,则有: ⇒y2=d2(r−x)d(r+x)d\Rightarrow y^2=d^2 \frac {原创 2017-09-10 14:49:49 · 994 阅读 · 0 评论 -
【数学乱搞】HDU1568 Fibonacci
题面在这里Lynstery大佬说这是傻逼题……首先考虑斐波那契的通项公式: Fn=15√⎡⎣(1+5√2)n−(1−5√2)n⎤⎦=15√(1+5√2)n⎡⎣1−(1−5√1+5√)n⎤⎦log10(Fn)=log10(15√)+n⋅log10(1+5√2)+log10⎡⎣1−(1−5√1+5√)n⎤⎦F_n=\frac 1 {\sqrt 5} \left[ \left(\frac {1+\sq原创 2017-09-17 20:41:01 · 844 阅读 · 0 评论 -
【斐波那契数列】51Nod 1350 斐波那契表示
题面在这里一道神奇的数学题……首先需要了解:将一个数每次减去最大可减的斐波那契数,一定是最优的方案之一以下用fif_i表示斐波那契数列的第i项则有: Gfi−1=Gfi−1−1+Gfi−fi−1−1+fi−fi−1⇒Gfi−1=Gfi−1−1+Gfi−2−1+fi−2G_{f_i-1}=G_{f_{i-1}-1}+G_{f_i-f_{i-1}-1}+f_i-f_{i-1} \\\Rightar原创 2017-09-13 21:18:55 · 896 阅读 · 0 评论 -
【结论+暴搜】BZOJ1053 [HAOI2007]反素数ant
题面在这里其实就是一道结论题观察可以发现,任意反素数拆分: m=pk11⋅pk22……pknnm=p_1^{k_1}\cdot p_2^{k_2}……p_n^{k_n} 其中,若 1≤i≤j≤n1\le i\le j\le n则有pi<pj,ki≥kjp_i\lt p_j,k_i\ge k_j 其实可以反证一发得到……然后就爆搜了 代码:原创 2017-06-29 15:42:46 · 832 阅读 · 4 评论 -
【组合数学】BZOJ3505 [Cqoi2014]数三角形
题面在这里首先会发现直接算很难算那么就考虑计算三点共线的方案吧由于两直角边分别为a,ba,b的三角形,斜边上整点数为gcd(a,b)+1gcd(a,b)+1然后中间点要共线就只有gcd(a,b)−1gcd(a,b)-1种可能然后把斜边遍历整个网格图(n−a+1)⋅(n−b+1)(n-a+1)\cdot(n-b+1)最后注意一下这个斜边是可以对称翻转的示例程序:原创 2018-01-02 18:43:31 · 718 阅读 · 0 评论