数学
文章平均质量分 57
johsnows
正在静下心来学算法的acmer
展开
-
codeforces 763 C Timofey and remoduling(数学)
题意:给出序列a,质数m,序列长n,序列a是对m取模后的序列,问是否能找到一个原序列是等差数列,输出首项和公比。否则输出-1。解题思路:首先需要知道两个公式:1.等差数列各项和公式变形:a1=(Sn-n*(n-1)/2*d)/n2.等差数列各项的平方的和的公式:Sn^2=n(a1)^2+n(n-1)(2n-1)d^2/6+n(n-1)*d*a1(以前不知道这公式。。)原创 2017-02-10 16:36:16 · 954 阅读 · 0 评论 -
poj 2976 Dropping tests 01分数规划
题意:给定两个长度都为n的a序列和b序列,可以去掉k对下标相同的a【i】, b【i】, 求最大的sigma(a[i])/sigma(b[i]);解题思路:0 1分数规划的入门题 不会0 1分数规划可以看这篇博客 http://blog.csdn.net/l123012013048/article/details/45672433大概的思路就是,我们的目标就是原创 2017-04-06 19:00:42 · 315 阅读 · 0 评论 -
codeforces 347 c Alice and Bob(博弈 && 数学)
题意:给出一个数的set,a和b每次轮流选两个不同的数,当这两个数的差的绝对值在set里不存在时,就可以把这个差值加入到set里,当有人不能加入时输,游戏结束。解题思路:其实能加入多少个数是固定的,跟先后操作顺序无关。所以我们只需要确定可以步数即可以加入多少个数,然后判断奇偶就可以确定谁赢了。然后怎么确定呢,找规律我们可以发现当一个set里的数成等比数列的时候,我们就无法再原创 2017-05-23 21:53:20 · 425 阅读 · 0 评论 -
第八届山东省赛 C sdut 3895 fireworks(组合数+逆元)
题意:一个烟花(位置为x)每秒爆炸并往两边(x-1,x+1)分裂成两部分,不断循环。给你n个位置,每个位置上有c个烟花,问t秒后,w位置上有多少个烟花。解题思路:容易推出对于一个烟花来说,t秒后周围的烟花数量分部就是杨辉三角的t+1行,不过每两个数之间要多一个0.n的上限1e5,不能打出杨辉三角需要o(n^2)的时间显然是不行的。所以我们只能直接求组合数,求的时候除法取原创 2017-05-10 12:37:27 · 452 阅读 · 0 评论 -
山东省第八届省赛 sdut 3896(找规律+组合数取模)
题意:如图让你求从(1,1)到(A,B)有多少种方案。解题思路:设向左走l步,向下走r步,向下走c步,我们枚举c,当c确定的时候,l和r也同时确定了,然后求一下l,r,c的排列数(l+r+c)!/(l!*r!*c!)就好了。需要预处理阶乘的逆元。具体见代码:#include #define LL long long using n原创 2017-05-10 16:53:48 · 614 阅读 · 0 评论 -
codeforces 382 B Number Busters(推公式)
给出 a, b, w, x, cc每秒c--;a的话,if(b>=x)b-=x;else {a--;b=w-(x-b);}问最少经过多少秒后c解题思路:最少多少秒的话,最后一个状态一定是处于一个a没变,c--的过程。然后具体分析,最好的情况是经过c-a秒,就达到了,这样验证一下就好。b=w-(x-b);转换一下,就是b=b-x+w.其实对于b来说,每次都是要-x原创 2017-06-21 11:54:35 · 441 阅读 · 0 评论 -
codeforces 822 My pretty girl Noora(递推)
仔细想想就能想出来,f(i)是可以根据因子转移的,f(i)=f(divisor)*i/divisor+f(i/divisor);对于i是素数的情况,也很明显答案就是c(i,2)。从2开始递推到r就好了。素数删可以求出最小素因子,直接用最小素因子做。代码:#include #define LL long longusing namespace std;const L原创 2017-07-04 20:14:18 · 334 阅读 · 0 评论 -
atcoder Moderate Differences(数学)
题意:给你一序列最左边b和最右边的数a,这个序列要求相邻的数的差距的绝对值得在c和d之间,序列的个数为n,问能不能构造出这样的合法序列。思路:这个题是真的巧。总共有n个数,就有n-1个相邻的数的差,记每个差为f[i],那么所有的f[i]的和就是b-a,这个容易想。f[i]的取值范围为【-d,-c】U【c,d】之间。假设有m个数是在【-d,-c】之间,那么如果f[i]原创 2017-07-10 10:22:32 · 512 阅读 · 1 评论 -
codeforces 839 D Winter is here
最后johsnows做jonsnow的题tle在了39...大概是因为我是假的snow吧。这个题的想法挺套路的。想法就是去枚举倍数,看有多少个数是当前这个数的倍数,这些数的gcd一定是当前这个数的倍数,假设有n个数,题目所求为gcd*k,枚举1注意求1-n的i*C(i,n)需要求一下公式,不能暴力求。先把C(i,n)拆成阶乘的形式,就可以看出来i*C(i,n)就是n*(i-原创 2017-08-13 17:36:42 · 514 阅读 · 0 评论 -
uvalive 7635 National Bomb Defusing Squad (几何)
题意:二维平面给n个点,q次询问,问以其中一个点为圆心,半径为r,能包含的的点的数量的期望思路:我们只需要求出每个点能覆盖多少个点的加和然后除以n就可以了,一开始我想的是求出每两个点的距离,然后对于每个点到其它的点的记录都进行排序,在查询的时候直接二分就好,查询的复杂度是qlogn,排序的复杂度是n^2logn这样的复杂度就是排序的复杂度,是n^2logn,tle了。r是小于4原创 2017-04-19 19:44:16 · 829 阅读 · 0 评论 -
codeforces 55D Beautiful numbers(数位dp)
题意:求[l,r]区间内是beautiful number的数, beautiful number的定义是一个数对于自己每位非0的数取模都为0解题思路:看出是一个数位dp题不难。这个题非常巧,首先判断对于每位上的数取模等于0实际上相当于判断对每位上的数字的lcm取模是否等于0.所以我们记录状态的时候只要记录每位数字的lcm就可以了。然后在搜索的时候如何判断一个数最后对原创 2017-05-01 17:26:29 · 374 阅读 · 0 评论 -
codeforces 768 D Jon and Orbs(概率dp)
题意:琼恩要派遣游骑兵去鬼影森林获取龙晶,共有k种龙晶,鬼影森林每天产生一种龙晶,由于长城以北过于危险,所有琼恩想知道让每种龙晶都至少有一件的概率大于p/2000至少需要多少天.共有q次询问,琼恩忙于和山姆讨论战术,这些问题就交给你啦.解题思路:概率题不会啊,QAQ,好不容想懂了题意,但是不会.不能理解题意的同学可以考虑,因为每天可能产生之前出现过的龙晶种类,所以即使k天也原创 2017-02-21 17:21:29 · 1082 阅读 · 0 评论 -
codeforces 768 B Code For 1 (数学)
题意:一个集合里一开始只有n这个数,每次操作把集合里大于1的数分为,,,三个数,它们的位置在原位置,知道集合里所有的数都是0和1.现在循环l到r区间内有多少个1,保证r-l例如:解题思路:一开始用链表去模拟做,内存炸了.然后开始想去计算的办法.我们可以发现原创 2017-02-21 09:39:22 · 673 阅读 · 1 评论 -
poj 3071 Football (概率)
题意:给一个n,有1思路:这题难度在于cooding,思路比较好想。我的做法是定义一个b[i][j]的数组,表示第j个人进入到第i轮的概率转移方程为: b[i][j]=b[i-1][j]*(a[i][k]*b[i-1][k]+a[i][k+1]*b[i-1][k+1]......)(k,k+1,k+2...为所有本轮可能面临的选手,比较难处理),最后找到第n-1轮中概率最大原创 2016-11-30 21:36:50 · 308 阅读 · 0 评论 -
codeforces 498 A Crazy Town
A. Crazy Towntime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputCrazy Town is a plane on which there are n inf原创 2016-12-04 14:11:15 · 365 阅读 · 0 评论 -
codeforces 735 D Taxes(数学)
题意:给你一个数,可以将它拆成n个数加和(n大于等于1),求这几个数最大因子(不包括自己)加和的最小值。思路:给这道题跪了,没有想到用哥德巴赫猜想,就当做是学姿势吧。对于一个素数来说,它最大因子就是1,所以答案明显是1.对于合素,分奇数偶数两种情况,对于一个大于6的偶数,可以拆成两个素数的和,所以它的最小值就是2,然后奇数可以通过减去一个非偶质数得到一个偶数,所以答案是原创 2016-11-28 19:34:50 · 419 阅读 · 0 评论 -
hdu 5187 zhx's contest(快速幂+快速乘)
题意:给一个1-n的序列,问有多少中排列方式,使这个序列中存在一个点,它的两边分别满足升升,升降,降降,降生,n的范围是1e18, 答案对p取模,范围是1e18.解题思路:一个点能满足左边的数(包括自己)单调递增,自己右边的数(包括自己)单调递减,那么这个数只能是最大值,反之只能是最小值,而我们要求的是就是除开最值之外的排布方案,对于最大值来说,n-1个数每个数只有两种可能,要原创 2017-02-22 20:33:39 · 430 阅读 · 0 评论 -
gplt 团体程序设计天梯赛 多项式A除以B(模拟)
5-10 多项式A除以B (25分)这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:N e[1] c[1] ... e[N] c[N]其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c原创 2017-03-31 10:30:31 · 1319 阅读 · 0 评论 -
武大校赛 26. Lost in WHU(矩阵快速幂)
题意:给出n个点,m条边,问t步内从1到达n的方案数。解题思路:这题的做法在离散课本上有介绍, 邻接矩阵A的l次的第i行第j列数表示i到j的长度为l的路的条数,应该是一道经典题了吧。知道这个就好做了,不过还要做一点做处理,因为这题求的是t步内的方案数。求t步呢的方案数,那么在t步之前就到达n点的方案应该让点不再变化,所以我们需要可以把所有从n出去的边删去,再连上一条n到原创 2017-04-10 16:03:26 · 641 阅读 · 0 评论 -
hihocoder 1555 四次方根(矩阵快速幂)
做这个题之前你的知道一元四次方程的求根公式(为什么我的小学体育老师没教过我...)设x^4+ax^3+bx²+cx+d=0的四个根是x1,x2,x3,x4,则x1+x2+x3+x4=﹣ax1x2+x1x3+x1x4+x2x3+x2x4+x3x4=bx1x2x3+x1x2x4+x1x3x4+x2x3x4=﹣cx1x2x3x4=d然后你可以通过推导得到x1^2+x2^2+x3^2+x4^2原创 2017-08-21 11:03:23 · 708 阅读 · 0 评论