随笔分类 -  找规律或推公式

摘要:这题首先是找规律推公式,然后就是组合数学的知识了。 题目是问到第n行第m列的格式有几种方案,我们可以用手算的方法列出当n和m比较小时的所有答案 比如我列出以下8*8的矩阵 矩阵上的数表示从那个位置到最右下角一共有多少种方案。 求每个位置的值也简单,就是把它右下角的所有数加起来即可。 那么,把这个矩阵 阅读全文
posted @ 2016-05-22 17:52 moonbay 阅读(277) 评论(0) 推荐(0)
摘要:这题就是找规律。小数据还是挺容易想的。大数据得再深入分析一下。 题意挺绕的。 其实就是字符串转换。字符串只能有两种字母,L或G。给定K和C,就能通过规则生成目标字符串。 那么,如果知道了K和C,以及目标字符串,那么是能够倒推出原字符串的。 现在问题是,目标字符串也不全给你看,限定你最多看s个。但是呢 阅读全文
posted @ 2016-04-09 22:15 moonbay 阅读(142) 评论(0) 推荐(0)
摘要:题意是给定了一个叫“jamcoin”的定义,让你生成足够数量满足条件的jamcoin。 jamcoin其实就可以理解成一个二进制整数,题目要求的要么长度为16位,要么为32位,一头一尾两个位必须是1,然后就是这个数字串在各种进制下表示的数都不能是质数。 我的做法很简单,因为大致口算了一下,满足条件的 阅读全文
posted @ 2016-04-09 19:30 moonbay 阅读(246) 评论(0) 推荐(0)
摘要:经典的翻饼问题,直接做:从下往上看,已翻好的饼忽略掉;从上往下,连续的已翻好的一起翻过来;整个翻过来。 阅读全文
posted @ 2016-04-09 11:17 moonbay 阅读(184) 评论(0) 推荐(0)
摘要:题意特难懂,我看了好多遍,最后还是看讨论版里别人的问答,才搞明白题意,真是汗。其实题目等价于给n个点,这n个点均匀分布在一个圆上(知道圆半径),点与点之间的路程(弧长)已知,点是有权值的,已知,点与点的距离等于其最短路程(弧长)加上两点的权值,问距离最远的两个点的下标。因为是环状,不好处理,所以我在... 阅读全文
posted @ 2015-06-06 22:39 moonbay 阅读(265) 评论(0) 推荐(0)
摘要:百度之星的题。其实最简单的方法是二分答案,我竟然没想到,直接去想O(n)的去了,最后导致滚粗。。。题意就是给一个数列,要求把它处理成递增序列。首先我想到了O(n^2)的算法,然后再优化成O(n)过的。n^2的做法是,弄一个尾指针e,从后往前扫,一旦发现a[e-1]>=a[e],说明a[e]之后的所有... 阅读全文
posted @ 2015-05-30 21:05 moonbay 阅读(279) 评论(0) 推荐(0)
摘要:就是最大子段和的变体。最大子段和只要一个数组,记录前i个里的最大子段和在f[i]里就行了,但是最大子段积因为有负乘负得正这一点,所以还需要把前i个里的最小子段积存起来。就可以了。直接上代码:/* * Author : ben */#include #include #include #incl... 阅读全文
posted @ 2015-01-30 19:02 moonbay 阅读(473) 评论(0) 推荐(0)
摘要:这题就是个公式,代码极简单。但我想,真正明白这题原理的人并不多。很多人只是随便网上一搜,找到公式a了就行,其实这样对自己几乎没有提高。鉴于网上关于这题的解题报告中几乎没有讲解原理的,我就多说几句,也不是严格的证明,给大家分享一下。题目是说有p人或q人吃蛋糕,需要提前把蛋糕切好而能同时满足这两种情况,... 阅读全文
posted @ 2015-01-25 23:32 moonbay 阅读(159) 评论(0) 推荐(0)
摘要:题目意思是给出一些开区间,这些区间有的相交,有的不相交,问你能否选出一些区间,使这些区间之间都不相交,并且选出的区间数最大。这是个典型的贪心问题了。按区间的结束位置排序,然后顺序地选取区间,只要当前区间与之前选的区间都不相交,就加入,否则就抛弃,这样就行了。道理很简单的,想想就能明白其正确性。/* ... 阅读全文
posted @ 2015-01-25 13:30 moonbay 阅读(167) 评论(0) 推荐(0)
摘要:这题真是过了n年才a。最早是在2010年北大培训比赛上看到的这题,当时我不会,竹教主也不会,但他记下来了,研究一段时间后就会了,还把这题加到我校oj上。过了这么多年,我上网搜,关于这个问题的解题报告还是没有,于是我花了几天时间做了出来,发布此解题报告。题目是要求从1到n的所有数与n的最小公倍数的和,... 阅读全文
posted @ 2014-12-18 21:00 moonbay 阅读(168) 评论(0) 推荐(0)
摘要:这题也是2011百度之星的一道题。知道做法后代码极简单。不过我做完后随便上网搜了一下,发现竟然还有很多不同的做法。别的做法我就不管了,我只把我的做法的原理说清楚。我做题时是按如下顺序逐步找到规律的:① 因为可以旋转,所以a和b的具体值无所谓,只在乎b-a的值;② 进一步,如果b-a等于1,那么无论原... 阅读全文
posted @ 2014-12-12 02:17 moonbay 阅读(141) 评论(0) 推荐(0)
摘要:这也是2011年百度之星的一道题。这题我就是乱搞搞过的,打代码之前自己心里也没底,不知道能不能过的。我的做法很简单,就是按时间顺序依次构造能杀死的僵尸血量,找到第k小的。构造的方法也很暴力:对t时刻,第i个武器新构造出来的血量,就是用ai+t*bi依次去加之前时刻构造出来的血量。所以解题的关键就在于... 阅读全文
posted @ 2014-12-10 21:19 moonbay 阅读(262) 评论(0) 推荐(0)
摘要:这是2011年百度之星的一道题。这题的做法就是找规律,规律找对了,代码极水。规律我一开始也没有找到,后来经人提醒,发现如下规律:对于每个开发者,其所有应用的分离度和一定是其第一个应用与最后一个应用的距离例如对于15 8 5 2这组数据,有很多种排法,其中三种排法如下1 2 3 1 2 3 1 2 1... 阅读全文
posted @ 2014-12-04 16:14 moonbay 阅读(169) 评论(0) 推荐(0)
摘要:题目是给你一个数x以及一个长度为n的数列,让你往数列里插入y个数,使数列的中位数正好是x,求y的最小值。(其实这题的中位数跟数学里的中位数有一点区别,略去不提)那么就排完序以后分情况讨论一下就好了。具体公式我就不推了,很简单的。这里附上几组我推公式时用到的测试数据(每组三行,前两行是题目的输入,第三... 阅读全文
posted @ 2014-12-03 16:12 moonbay 阅读(180) 评论(0) 推荐(0)
摘要:题目就是指定n,求卡特兰数Ca(n)%m。求卡特兰数有递推公式、通项公式和近似公式三种,因为要取余,所以近似公式直接无法使用,递推公式我简单试了一下,TLE。所以只能从通项公式入手。Ca(n) = (2*n)! / n! / (n+1)!思想就是把Ca(n)质因数分解,然后用快速幂取余算最后的答案。... 阅读全文
posted @ 2014-12-03 12:24 moonbay 阅读(232) 评论(0) 推荐(0)
摘要:题目是求fun(n)的值fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] means the number of way to choose k things from n ... 阅读全文
posted @ 2014-12-02 22:40 moonbay 阅读(208) 评论(0) 推荐(0)
摘要:给定两个圆,求其覆盖的面积,其实也就是求其公共面积(然后用两圆面积和减去此值即得最后结果)。我一开始是用计算几何的方法做的,结果始终不过。代码如下:/* * Author : ben */#include #include #include #include #include #include... 阅读全文
posted @ 2014-12-02 18:12 moonbay 阅读(303) 评论(0) 推荐(0)
摘要:其实这题还是挺简单的,因为移动k个星球后,这k个星球的权值就可以变为0,所以只有剩下的本来就是连着的才是最优解,也就是说要动也是动两端的,那么就O(N)枚举一遍动哪些就好了。我是在杭电oj题目重现的比赛上做这题,因为之前听人说现场赛时有人用n^2的算法蹭过了,所以我不断蹭,蹭了一个小时都没蹭过。。。... 阅读全文
posted @ 2014-10-22 23:51 moonbay 阅读(285) 评论(0) 推荐(0)
摘要:简单规律题。首先想到的是,若01串中1有n个,则可以通过操作,使串中1的个数变为n-1、n-2……1、0个;第2个想到的是,如果n为奇数,可以通过操作,使串中1的个数最多变为n+1,而若n为偶数,则无法增加1的个数;第3个想到的是,两个串如果1的个数相同,则一定可以相互转换(这个有点难想,我感觉是对的,而且写程序验证了)。想到这里,题目就非常简单了。/* * Author : ben */#include #include #include #include #include #include #include #include #include #include #include #i... 阅读全文
posted @ 2014-03-24 20:44 moonbay 阅读(145) 评论(0) 推荐(0)
摘要:一个多月没刷题了,找了道水题玩玩。。。做法很简单。最后的结果一定是在N+1到2N之间的,因为最好的情况就是所有的绳子一样长;最坏的情况就是全都不一样长(此时把最小的那根平均切,其余的切出那个长度即可)。所以,最优解一定是有一种长度的绳子被均切,枚举这个即可。/* * hdu4476/win.cpp * Created on: 2013-1-3 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctim 阅读全文
posted @ 2013-01-03 22:38 moonbay 阅读(188) 评论(0) 推荐(0)