
数学推导
文章平均质量分 56
lyc1635566ty
这个作者很懒,什么都没留下…
展开
-
HDU5694-BD String-数学归纳找规律
题目:众所周知,度度熊喜欢的字符只有两个:B和D。今天,它发明了一种用B和D组成字符串的规则:S(1)=BS(2)=BBDS(3)=BBDBBDDS(n)=S(n−1)+B+reverse(flip(S(n−1))其中,reverse(s)指将字符串翻转,比如reverse(BBD)=DBB,flip(s)指将字符串中的B替换为D,D替换为B,比如flip(BBD)=D原创 2016-05-24 00:35:26 · 639 阅读 · 0 评论 -
HDU-5881-Tea-找规律+数学推导
题目链接题意:有一壶水,不知道有多少升,但是知道在[L,R]。每次可以向两个茶杯中倒一定量的茶,(可以控制多少),每次倒完之后可以知道茶壶里面是不是空的。最终的目标是控制两个茶杯中的茶不超过1升,茶壶中剩余不超过1升。问最多多少次可以完成要求。思路:可以分析,最优的策略就是先向一个茶壶中到(L+1)/2 ,另外一个倒(L+3)/2升,然后交替到2升,再排除一些特例就好了。#include<bits/原创 2016-09-19 21:37:22 · 369 阅读 · 0 评论 -
HDU-5528-Count a * b-2015长春B题(数学推导)
题目链接题意:给定一个n,求g(n)g(n)g(n)=f(x1)+f(x2)...+f(xm)g(n)=f(x_1)+f(x_2)...+f(x_m),其中xix_i 是nn的约数,f(n)是取(a,b),a<n,b<nf(n)是取(a,b),a<n,b<n,n不能整除a∗ba*b 的对数。思路:进行公式推导把。f(x)=∑x−1a=0∑x−1b=0[x∤a∗b]=x2−∑x−1a=0∑x−1b=0原创 2016-10-10 20:39:27 · 608 阅读 · 0 评论 -
HDU-5935-Car(杭州CCPC C题)-数学推导+水贪心
题目链接题意:一辆车在作一个不减速运动。按顺序记录这辆车整秒时的位置,问这辆车最少用多少秒跑完这条路。思路:先预处理每个间隔的长度。易证明,要使得总时间最少,最后一个间隔一定是一秒。然后diti<=di+1ti+1\frac{d_i}{t_i}<=\frac{d_{i+1}}{t_{i+1}} 通过这个式子算出最小的tit_i,倒着推上去就好了。#include<bits/stdc++.h>#de原创 2016-11-05 00:19:51 · 560 阅读 · 0 评论 -
HDU-5943-Kingdom of Obsession(杭州CCPC K题)-数学推导+匈牙利算法优化
题目链接题意:给定一个n和s。其中,判断s+1到s+n是否存在一种匹配和1到n,两个数匹配是当前者中的数可以整除后者的数。思路:有一个优化,若有重叠的部分,则重叠的互相抵消。(易正明,若1到n中的n不和s+1到s+n中的n匹配,则他不能其他的数匹配的),然后另一个优化也就来了,如果大的数中存在两个质数,那肯定不存在匹配。而10的9次内的素数差很小,用一个匈牙利算法匹配一下就好了。#include<c原创 2016-11-05 00:36:30 · 393 阅读 · 0 评论 -
HDU-5970-最大公约数(合肥CCPC J题)-数学推导+找规律
题目连接题意:求如题目所给的式子的值。思路:由性质可得f(i+j∗k,j)和f(i,j)f(i+j*k,j)和f(i,j)相同,此式子易得。而这两个式子中的c也相同。(i+(k+d∗c)∗j)∗jc∗g∗g,其中0<=k<c\frac{(i+(k+d*c)*j)*j}{c*g*g},其中0<=k<c对于一组(i,j),有一个特定c然后可以求这个c的循环节,然后在凑上多余的数随便搞搞。#include原创 2016-11-05 19:43:01 · 1576 阅读 · 0 评论 -
BNU-52305-Around the World(四川省赛H题)
题目链接题意:一棵树,给出每两个点间有几对边。每条边都是不一样的,问有多少种方法走完这颗树。思路:首先,对于每一个节点,假设,他的子节点没有子节点。然后计算这个的情况。令aia_i是这个点和每个子节点的边数。sumsum 是边数和。则当前的情况数为sum!∏n1ai∗∏n1(2ai)!\frac{sum!}{\prod_{1}^{n}{a_i}}*\prod^{1}_{n}{(2a_i)!}然后就是原创 2016-10-06 18:19:06 · 459 阅读 · 0 评论 -
2013芝加哥邀请赛H题-Overlapping Maps-计算几何
题意:一个高H,宽W的地图,还有一个同样地图,按比例缩小,右下角在地图中的位置是(x,y)(x,y),长宽缩小到原来的s%,逆时针旋转r度如图:AM=hs100AN=ws100AM=\frac{hs}{100} AN=\frac{ws}{100}AB=hs100∗bh=sb100AB=\frac{hs}{100}*\frac{b}{h}=\frac{sb}{100}同理AC=sa100AC=\fra原创 2016-10-07 17:17:00 · 401 阅读 · 0 评论 -
HDU-5985-Lucky Coins-2016青岛站D题-数学推导
题目链接题目大意:给你n种硬币,并给你每种硬币的个数和正面朝上的概率。每次将所有的硬币投掷一下。背面朝上的抛弃。直到只剩下一种硬币或者没有硬币。最后剩下的那种硬币叫幸运硬币,问每种硬币成为幸运硬币的概率。思路:令两个函数f[i][k]f[i][k]表示第i种硬币第K步死光的概率,所以f[i][k]=(1−pki)nif[i][k]=(1-p^k_i)^{n_i}revf[i][k]revf[i][k原创 2016-11-24 19:30:02 · 2744 阅读 · 0 评论 -
约瑟夫环笔记+加速优化板子(HDU3089)
今天看到一题和约瑟夫环相关的问题,就把约瑟夫环的板子整了一下。问题描述:n个人围成圈做,编号从0开始到n-1,从第0个人开始报数(从1开始),每次报到m的人出局,然后从后一个人开始继续往后报数。问最后获胜的人是谁。思路:如果下标从0开始,则第一轮m-1被删除。剩下的数就又生成了一个大小为n-1的约瑟夫环。其中对应关系(旧–新)k—-0 k+1—-1 k+2—-2 …… n-1—-n-k-1原创 2017-06-25 20:07:14 · 761 阅读 · 1 评论 -
HDU-5950-Recursive sequence-矩阵快速幂
题目链接题意:给出F[1]和F[2],F[i]=F[i−1]+F[i−1]∗2+i4F[1]和F[2],F[i]=F[i-1]+F[i-1]*2+i^4求F[n]思路:明显的构造矩形快速幂,将n^4展开就好了#include<bits/stdc++.h>const long long mod = 2147493647;using namespace std;struct mat { l原创 2016-10-31 21:30:50 · 290 阅读 · 0 评论 -
UVALive 7147-World Cup-数学推导-水题
题意:足球比赛中,赢一场加a分,平一场加b分,负一场加c分n个队伍,两两进行一场比赛,比分前m的晋级,分数相同随机晋级问某个队伍被淘汰,分数最高多少,某个没被淘汰分数最低是多少分数最高就让m+1个队伍分数都一样,分数最低就让n-m个队伍分数一样#include#include#includeusing namespace std;long long n,m;long l原创 2016-08-13 23:26:44 · 529 阅读 · 0 评论 -
HDU-5821-Ball-数学题
题意:转化模型后,意思就是,n个数,可以重复,q次修改每次可以将l[i]到r[i]里的数按自己想的方法排序,问能否通过q次操作,将a数组转换成b数组。思路:首先先可以排除a数组里元素和b数组元素不完全相同的情况。然后用b数组去a中找最近的一个相同的数,表上b的下标然后每次区间修改就是将a数组按照标号排序一下。之所以可以这样做是因为这个数组最后一定是要变成升序的所以每次修改都把区间都修改成升原创 2016-08-12 21:02:32 · 391 阅读 · 0 评论 -
HDU-5826-physics-数学推导
题意:坐标轴有n个球,每个球有一个位置,初速度,方向,还有一个常数c,满足c=av a和v的加速度相同,若两个球相撞,则发生完全弹性碰撞。q个询问,问每次t时间的速度第k大的小球速度大小是多少、思路:因为是发生完全弹性碰撞,则两个小球就相当于没有发生碰撞,继续前进。因为是求速度大小,所以和方向没有关系。有因为c=av ,可知,所有小球速度增长的曲线都是这个,初速度不同只是在曲线上的初位置不同,原创 2016-08-12 17:51:09 · 263 阅读 · 0 评论 -
HDU-5753-Permutation Bo
题目:略题意:可以通过每个数对整个期望的贡献,注意n=1和2的情况#includeusing namespace std;double a[1111];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { scanf("%lf",&a[i原创 2016-07-27 00:54:51 · 284 阅读 · 0 评论 -
HDU 5136 (DP)
题目链接:这里题意:求深度为n的无根树有多少种构型。思路:分为两种情况,n为奇数或者偶数首先令dp[i]dp[i]为深度为k的子树的个数dp[i]=∑k−2j=0dp[i]+(dp[k−1]∗dp[k−1]+dp[k−1])/2dp[i]=\sum^{k-2}_{j=0}dp[i]+(dp[k-1]*dp[k-1]+dp[k-1])/2ps:(dp[k−1]∗dp[k−1]+dp[k−1])/2=c原创 2016-06-19 15:59:25 · 377 阅读 · 0 评论 -
HDU--5761-Rower Bo-数学推导(也可以找规律)
题意:大概就是小船V1速度,河水V2速度,河宽a,小船一直朝着终点方向前进。问多久能到达标标称做法是用微积分的方法的方法去求但是其实我们也可以自己写一个微积分模拟,然后根据答案来找规律。。找规律的时候还可以参考一下量纲最后的规律就是av1/(v1^2-v2^2)(注意a=0时答案就是0)#includeusing namespace std;int main(){ d原创 2016-07-27 01:04:06 · 302 阅读 · 0 评论 -
HDU-4919-数学推导加Java大数
题目链接题目大意:通过给出的公式,已知n求f(n)最后总结得出公式 :n=2k时f(n)=2*f(k)+2*f(k-1)+4*k-4n=2k+1时f(n)=4*f(k)+6k最后用Java大数轻松写完import sun.awt.image.PixelConverter;import java.math.BigIntege原创 2016-07-08 22:34:50 · 283 阅读 · 0 评论 -
HDU4565-So easy-数学推导化简递推矩阵快速幂
So Easy!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3517 Accepted Submission(s): 1136Problem Description A sequence Sn i原创 2016-04-07 20:30:08 · 783 阅读 · 0 评论 -
HDU-5794-A Simple Chess-容斥加数学推导加大组合数
题意:要从(1,1)点走到(n,m)点去。只能走马字,而且只能向右下走。地图上还有r个障碍点,不能通过这些点。问走到终点有多少种路径。思路:首先画图,观察这些点的形状,容易观察,得到马能走的点是一个变形的杨辉三角。我们可以通过坐标转换,将原来坐标的点转换到新的杨辉三角坐标中。转换公式:当然要先判断这个点是不是有效点(能不能被马走到)if((x-1)*2 都是无效点原来的点(原创 2016-08-05 15:17:16 · 337 阅读 · 0 评论 -
HDU-5793-A Boring Question-打表找规律加模逆元
题意:根据题目所给公式打表找规律,容易发现f(n,m)=m*f(n-1)+1f(1,m)=m+1容易得到f(n,m)=(m^(n+1)-1)/(m+1)套一个模逆元板子就好了#include#define mod 1000000007using namespace std;long long extend_gcd(long long a,long long b,lon原创 2016-08-05 15:22:17 · 303 阅读 · 0 评论 -
HDU-5873-Football Games-数学推导
题目链接题意:给你球队个数和每个球队的得分,问这组数据是否合法。其中,每个球队之间只进行一场比赛。赢的2分输的0分,平局各一分。思路:对于个n个人的集合,总分是n∗(n−1)/2∗2n*(n-1)/2*2不是这个数直接F所以,对于,n个几何的得分情况,按顺序排好,从大往下,减去分数,如果剩下的分数少于(n−1)∗(n−2)(n-1)*(n-2) 那就不满足了。注意n=2的时候就好了#include<原创 2016-09-11 22:08:16 · 452 阅读 · 0 评论 -
HDU-5810-Balls and Boxes-数学推导(找规律)
题意:n个球,放到m个盒子里,问每个盒子球个数的方差的均值。思路:题解给出了神奇的数学推导,其实打张表很容发现规律#includeusing namespace std;int main(){ long long n,m; while(scanf("%lld%lld",&n,&m)&&(n+m)!=0) { long long x=n*(m-1);原创 2016-08-10 16:50:00 · 264 阅读 · 0 评论 -
HDU-5816-Hearthstone-DP+数学推导
题意:有两种牌,A使用后可以再抽两张牌,B使用后可以减少对方x点生命值,对方开始p点生命值思路:因为每次抽牌,结束时要不就是xa+1=xb或者是全部取完(n>=m)所以先DP初始化一下dp[i][j]表示抽出i张A卡和j张B卡的合法种数然后dfs暴力枚举一下f[i]表示i张B大于p的种数最后对于每一种i-1张A和i张B都有 ans+=C(n,i-1)*fac[i-1]*dp原创 2016-08-11 00:51:57 · 299 阅读 · 0 评论 -
卡特兰数公式推导
卡特兰数最常见的描述就是2n个球进站出站有多少种顺序推导:折线法,问题转化为从(0,0)到(2n,0)(0,0)到(2n,0) 每次可以向右上或者右下走一波,问在不越过x=0x=0 这条线的情况下,有多少种走法。所以可以根据总数减去非法数总数很明显是cn2nc^{n}_{2n}非法数可以这样算。如果这个过程非法,这条线一定会碰到x=−1x=-1 这样我们可以取折线第一次喷到直线x=−1x=-1的点。原创 2017-06-26 21:58:36 · 10726 阅读 · 0 评论