![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学
文章平均质量分 52
数学算法题
张小生的先生
你要觉得我博客还行,就点赞加个关注,有意深聊的可以私信,随时欢迎,当然有女性想深聊的我更欢迎,要是男性的话不建议私聊,我跟一大老爷们真聊不起来。我人品五五开,胆小不好色,对女性要求不高但要识大体,样貌看得过去就行,其它的也就那样了。我不仅把这个当作学习博客也当作一个招友的圣地,希望在这里遇见更好的你。
展开
-
[Codeforces Global Round 14] F. Phoenix and Earthquake (组合数学+打表逆元+dp)
题目链接:F. Phoenix and Earthquake题解我们考虑手动开灯情况,很明显就是一段段连续的1中间最多隔一个0。每个区间内灯被点亮的方案数为2len−1{2^{len-1}}2len−1个,(len为区间长度)。定义:设dp[i][j]:前i个灯有j个手动开,最后一个是手动打开的方案数。{设dp[i]}[j]:前i个灯有j个手动开,最后一个是手动打开的方案数。设dp[i][j]:前i个灯有j个手动开,最后一个是手动打开的方案数。初始化:dp[i][i]=2i−1{dp[i][i]=原创 2021-05-13 10:22:34 · 162 阅读 · 0 评论 -
[Codeforces Round #713 (Div. 3)] G. Short Task (预处理打表)
题目链接:G. Short Task题解用nlogn的办法可以筛出1e7内所有的因子和,然后保存第一次出现该因子和的数,如果存在则输出否则输出-1.代码#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<bitset>#include<cassert>#include<cctype>#include原创 2021-04-11 21:36:29 · 1468 阅读 · 9 评论 -
[第 45 届ICPC 南京] F.Fireworks (期望+三分)
题目链接:F.Fireworks题解放出完美烟花的最短时间——就是在第k次放烟花时就能得到完美烟花,那么设时间期望为f(k)得出f(k)=k∗n+m1−(1−p)k,(k为正整数){f(k)=\frac{k*n+m}{1-(1-p)^k}},(k为正整数)f(k)=1−(1−p)kk∗n+m,(k为正整数)现在可以将问题转化为求函数最小值。通过求一次导发现函数不单调,再次求导得出函数为单峰函数,那么对于单峰函数求极值可以通过三分得到。代码注意这里三分循环条件不是r>l,而是r>l原创 2021-03-22 19:49:06 · 158 阅读 · 0 评论 -
[Gym - 102861A] A - Sticker Album 概率dp
题目链接:A - Sticker Album题意给你一个容量为n的卡牌收集册,以及无限个卡牌包,卡牌包有[a,b]个卡牌,取出的卡牌数是等概率分布的,言外之意你有1b−a+1{\frac{1}{b-a+1}}b−a+11的概率取出a、a+1、…、b张卡牌。问你把卡牌收集册集满时的概率期望是多少。题解设dp[i]:你已经有i张卡牌,你要集满n张还需多少卡牌。状态转移:dp[i]=(dp[i+a]+1)+(dp[i+a+1]+1)+....(dp[i+b]+1)b−a+1{dp[i]=\frac{原创 2020-12-08 17:50:18 · 471 阅读 · 0 评论 -
n条直线最多将平面分为多少部分
n条直线最多将平面分为多少部分一条直线:2块两条直线:4块三条直线:7块四条直线:11块…当n==1时: f[1]=2当n>1时: f[N]=f[N-1]+N总而言之:f[n]=(n2+n+2)/2{f[n]=(n^2+n+2)/2}f[n]=(n2+n+2)/2原创 2020-10-20 17:35:07 · 2027 阅读 · 0 评论 -
catlan数和超级catlan数(施罗德数)
catlan数前言卡特兰数在组合数里很难告诉它是什么?更多的情况是通过大量的例子来告诉你它怎么用。从0开始catlan数的前几项为:1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790…定义1. 递归定义fn=f0∗fn−1+f1∗fn−2+f2∗fn−3+.....+fn−2∗f1+fn−1∗f0{f_n=f_0*f_{n-1}+f_1*f_{n-2}+f_2*原创 2020-09-01 12:46:25 · 849 阅读 · 0 评论 -
[超级码力在线编程大赛初赛(二)] 4.小栖的金字塔 施罗德数(超级卡特兰数)
题目链接:小栖的金字塔题意小栖可以在不同点间移动,假设小栖现在在(x1,y1){(x_1,y_1)}(x1,y1),他能够移动到的下一个点(x2,y2){(x_2,y_2)}(x2,y2)满足(x2>=x1&&y2>=y1){(x_2>=x_1 \&\& y_2>=y_1)}(x2>=x1&&y2>=y1)。现在小栖呆在处,由于我们不能确定小栖现在在哪儿,所以你需要求出所有点到达的方案数的和。题解这原创 2020-08-31 21:50:11 · 234 阅读 · 0 评论 -
[Codeforces Round #666 (Div. 2)] B. Power Sequence 暴力枚举
题目链接:B. Power Sequence题意给你一个长度为n的序列a,让你通过一些操作使其变成一个叫“power sequence”的序列——存在一个c使得(0≤i≤n-1),ai=ci{a_i=c^i}ai=ci。你能够更改序列里每个元素的位置,这个操作不计入操作数内。你可以选择任意一个元素增加或减少1,每进行一次这个操作,操作数+1。问最少需要多少操作数使其变为“power squence”。题解本题我们先来分析,ai≤1e9,n≤1e5{a_i≤1e9,n≤1e5}ai≤1e原创 2020-08-31 15:03:48 · 998 阅读 · 0 评论 -
[2019CCPC-江西省赛] H - Rng 概率+数学推导
题目链接:H - Rng题意给你一个长度为n的1~n区间,我们首先从[1,n]中任意选取一个整数r,然后再从[1,r]中任取一个整数l,构成一个区间[l1,r1]{[l_1,r_1]}[l1,r1],相同的方法构造[l2,r2]{[l_2,r_2]}[l2,r2]。问这两个区间相交的概率为多少,答案为pq{\frac{p}{q}}qp的形式,输出p∗q−1(mod(1e9+7)){p*q^{-1}(mod (1e9+7) )}p∗q−1(mod(1e9+7))。题解首先我们可以知原创 2020-08-25 17:46:43 · 374 阅读 · 1 评论 -
[ BAPC 2016 ] Lost In The Woods 后效性处理(列方程)+高斯消元
题目链接: Lost In The Woods 题意给你n个点m条边,每走过一条边的时间为1分钟,让你从0出发,问到编号为(n-1)的点所需的时间期望为多少?题解由于对走法没有限制,会出现来回走的情况,一开始用bfs模拟发现耗时大,并且答案误差较大,后来经大佬指点,才明白此类带有后效性问题,可以通过列方程然后高斯消元求解。我们可以逆向考虑,设dp[x]为x点到(n-1)点的时间期望。我们很容易发现dp[n-1]=0并且我们可以列出一个方程:dp[x]=∑k∈(所有与x相连的点)dp[k]+1原创 2020-08-18 13:31:40 · 228 阅读 · 0 评论 -
[2019年浙江省省赛] B - Element Swapping 数学推导
题目链接:B - Element Swapping题意给你一个长度为n的序列,可能会从序列里选两个数进行交换,交换次数只能为一次,现在我们知道原序列的x=∑k=1nk∗ak和y=∑k=1nk∗ak2{x=\sum_{k=1}^n{k*a_k}和y=\sum_{k=1}^n{k*a_k^2}}x=∑k=1nk∗ak和y=∑k=1nk∗ak2,以及交换后新序列的每个值,问可能交换的次数。题解假设新序列为a1,a2,a3..ai,ai+1,...aj,aj+1...an{a_1,a_2,a_3..原创 2020-08-17 17:28:52 · 215 阅读 · 0 评论 -
[2019年浙江省省赛] I - Fibonacci in the Pocket 数学
题目链接:I - Fibonacci in the Pocket 题意定义fi=fi−1+fi−2,f1=1,f2=1{f_i=f_{i-1}+f_{i-2},f_1=1,f_2=1}fi=fi−1+fi−2,f1=1,f2=1,给你一个区间[l,r],求∑i=lrfi{\sum_{i=l}^rf_i}∑i=lrfi能否被2整除,如果可以则输出0,否则输出1。题解易知fi{f_i}fi为斐波那契数列,并且通过分析可知,Fibonacci数列的奇偶性以每三个为“奇奇偶”一个循环。中学原创 2020-08-17 12:31:37 · 186 阅读 · 0 评论 -
Codeforces Round #663 (Div. 2) C. Cyclic Permutations
题目链接:C. Cyclic Permutations题意给你一个数n,让你寻找1~n的全排列中满足以下条件的排列有多少种。一个排列中,我们可以将一个数左边第一个大于它的数的序号和该数序号连接,也可以将右边第一个大于它的数的序号和该数连接,如果没有这种数就不连接。对每个数操作完后,形成一个无向图,如果无向图有环则满足条件,无环则不满足。题解首先通过分析我们可以知道当1在中间时必满足条件。以a、1、b为例,设1的序号为x,则a的序号为x-1,b的序号为x+1。可知(x,x+1)和(x,x-1)这原创 2020-08-11 14:56:41 · 312 阅读 · 0 评论 -
[2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth 期望+逆元
题目链接:Battle for Wosneth 题意中文题意不多解释题解A先手,B后手我们可以列一个表格。[pqpq......p(1−p)(1−q)(1−p)(1−q)......(1−p)]{ \begin{bmatrix} p & q & p & q & ...... p\\ (1-p) & (1-q) & (1-p) & (1-q) & ...... (1-p)\\ \end{bmatrix} }[p(1−p)q(1−q原创 2020-08-10 12:14:03 · 259 阅读 · 3 评论 -
[2020牛客暑期多校训练营第七场] B.Mask Allocation GCD
题目链接:B.Mask Allocation题意本题的题意是个难点,我们花了将近一个多小时才把题意搞懂。。给你n和m,让你构造一个数组,要求数组里的数不能拆分只能合并,使之可以合并为n个m和m个n,答案可能有多种,要求输出长度最小的。题解本题我们猜了一个结论,发现选中的数字可以通过欧几里得算法(求gcd)确定,而每一步求解的结果为选中的数字。以10 6为例:选中的数字有6,10%6,6%(10%6)。所以很容易确定构造数组中的数字,现在我们需要确定数字的个数。通过猜想加验证,发现次数为m∗⌊原创 2020-08-02 10:56:22 · 140 阅读 · 0 评论 -
[Codeforces Round #657 (Div. 2)] B. Dubious Cyrpto 构造
题目链接:B. Dubious Cyrpto题意给你一个等式n∗a+b−c=m(l≤a,b,c≤r,1≤m≤1010,1≤l≤r≤500000){ n*a+b-c=m (l≤ a,b,c ≤r ,1≤m≤10^{10} ,1≤l≤r≤500000)}n∗a+b−c=m(l≤a,b,c≤r,1≤m≤1010,1≤l≤r≤500000),其中n,a,b,c,l,r,m都为正整数,输入l,r,m,求a,b,c的值。题解以开始以为是二分,后来发现是构造。易知:m=⌊ma⌋∗a+m%a{易知:m=\lf原创 2020-07-29 16:00:47 · 120 阅读 · 0 评论 -
[2020牛客暑期多校训练营第一场] J题 Easy integration
题目链接:Easy Integration题意:输入n,求解∫01(x−x2)n dx的值,对998244353取模。\int_0^1 {({x-x^2})^n }\,{\rm d}x的值,对998244353取模。∫01(x−x2)ndx的值,对998244353取模。题解:多次运用分部积分能找到规律,猜出答案,答案正确性可通过数学分析法求证。∫01(x−x2)n dx\int_0^1 {({x-x^2})^n }\,{\rm d}x∫01(x−x2)ndx⇒ ∫01xn∗(1−x)n dx\原创 2020-07-12 22:07:05 · 184 阅读 · 0 评论 -
codeforces 1359 C. Mixing Water
C. Mixing Water题目连接:problem题意:向一个无限大的桶倒水,只有2种温度的水——(高温h水和低温c水),规定只能先倒热水,求倒多少杯水才能使最后桶里水的平均温度尽可能接近t,如果有多种方案输出水杯最少方案。题解:本人用数学方法完成,时间复杂度为O(1)。设热水的杯数为x,冷水的杯数为y.(由题易得x=y || x=y+1)。那么最后桶里水的温度为(h∗x+c∗y)(x+y)\frac{(h*x+c*y)}{(x+y)}(x+y)(h∗x+c∗y)。求(h∗x+c∗y)(x原创 2020-05-29 19:07:25 · 316 阅读 · 0 评论