数学基础
文章平均质量分 59
流年冲淡时光
这个作者很懒,什么都没留下…
展开
-
JVAVBigInteger类的使用
这里列举一下JAVABigInteger类中的加减乘除以及取模的使用,如果用到其他函数,可以查询JAVA函数库:import java.math.*;import java.text.DecimalFormat;import java.util.Scanner;public class bignum { public static void main(String args[]){原创 2016-03-26 12:07:51 · 524 阅读 · 0 评论 -
小白书埃及分数之加深迭代搜索
首先说一下什么事加深迭代搜索:其实就是控制深度的dfs,至于这个深度控制在多少根据题来定。然后讲一下这个题。控制深度之后,枚举第k个分数然后dfs下去,第k个分数要确定上下界,上界即为a/b+1,下界首先要符合剩下的还有几个分数,然后不能超INT,具体的代码中查看,由于加深迭代搜索已经控制了题目中说的是分数数目最小,然后就是每次找到符合的,在某个第k项分数更小的话就更新an原创 2015-09-14 10:58:39 · 381 阅读 · 0 评论 -
小白书之最优程序
这题是一个隐式树的bfs,注意输入n对数,n对数公用同一个程序去计算结果,相当于一个程序同时去计算几对数,然后用一个二维数组存下每次计算的值,bfs的时候注意判断下一步需要所有对数都满足可以计算的条件才能加入队列,不过感觉他写的代码比较繁琐,而且bfs写的有些奇怪,自己不怎么想写,看了好久才看懂这个代码,主要理清俩点:1:同一个程序去计算所有的点对数,同时计算。2:每步计算要满足条原创 2015-09-13 21:23:26 · 553 阅读 · 0 评论 -
小白书之回溯法求素数环
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespace std;const int N=101;int A[原创 2015-09-11 20:14:30 · 520 阅读 · 0 评论 -
HDU5480象棋盘上有很多車,求一个矩形里面的棋子能否全部被車吃
呵呵,此次明明前两题很简单,然而以俩题全跪告终,第二题也是太急了,自以为后台数据不会全是大数据,就不会超时,就懒的简化时间了,然后就去做第三题,想了好久并没有做出来,然而前俩题全挂了,以后还是按照保底分来吧,身为渣渣不能想太多,这道题就是我的代码求个前缀和就行了。#include#include#include#include#include#include#include原创 2015-09-26 21:38:13 · 566 阅读 · 0 评论 -
UVA442矩阵乘法之求出多个矩阵相乘乘法的次数
这个题自己刚开始写的,受前面那个题的影响开了俩个栈,一个拿来存括号了,然而这个题保证输入合法,不需要将括号入栈,另外自己刚开始还重重载了矩阵赋值函数,后来发现矩阵竟然不需要重载赋值函数,不知道为什么矩阵不需要重载赋值函数。#include#include#include#include#include#include#include#include#include#i原创 2015-08-19 14:36:09 · 587 阅读 · 0 评论 -
HDU5292魔方满足什么条件能够还原
http://blog.sina.com.cn/s/blog_15139f1a10102vnx5.html题解:#include #include #include #include #include using namespace std;int a[] = {-1,1,1,-1,1,-1,0,0,1,-1,-1,1,0,0,-1,1,-1,1,1,-1,0,0,0,0};i翻译 2015-07-25 08:56:57 · 597 阅读 · 0 评论 -
HDU5351大数模板加斐波那契
#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define lson lo, mi, rt << 1#define rson mi + 1,翻译 2015-08-04 20:54:30 · 542 阅读 · 0 评论 -
CF574A优先队列是一个数加上另外一些数,使这个数在这些数中最大
这题大水题一个,至于我,一定是脑抽了WA到最后,想想都觉得呵呵。其实就是每次让最大的数减一,然后排次序,如此循环即可。另外也可以用优先队列来做,这里贴上优先队列的代码:#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-08-30 10:03:23 · 390 阅读 · 0 评论 -
cf559A每个角都是120度的六边形补成正三角形
每个角都是120度的六边形显然可以补成正三角形,然后用正三角形的面积减去补出来的三个正三角形除以一个边长为1的正三角形面积即为这个六边形包括的边长为1的三角形的个数。这个题起初自己想的以为必须左边的边和右边的边相等才能使每个角都是120度,即b==f,其实只要左边的长度和右边的长度一样就可以即b+c=e+f;#include#include#include#include#翻译 2015-07-23 21:07:05 · 683 阅读 · 0 评论 -
UVA550把数字的最后移到最前面求这样的数字的长度
还是看不懂题意的问题,看着数据猜题意猜了好久没有猜出来,其实就是把一串数字的最后一位移到最前面,写一下十进制的乘法可以同理的出来其他进制的乘法,设原来的数字为s,最后一位为b,则s*c的最后一位s*c%a,其实是s倒过来那个数的第二位,然后依此类推,知道乘积+原来的进位==最低位。#include#include#include#include#include#include翻译 2015-08-03 21:55:40 · 326 阅读 · 0 评论 -
UVA11205子集生成的应用
这题题意不是很容易理解,但是实际上就是让你用最少的列数去表示n个数字,即让你找出最少的列数,使n行的这几列组成的01串没有任何俩个串完全相同。即是枚举子集。我这里把增量构造法,向量法以及二进制法三种的代码都敲了一遍。#include#include#include#include#include#include#include#include#include#incl原创 2015-09-16 20:14:34 · 463 阅读 · 0 评论 -
UVA131德州扑克之枚举子集
这题就是一个德州扑克的题目,主要是代码写的比较繁琐,可能我写的又繁琐了一点,转化成十张牌之后然后枚举五的子集,然后从剩下五张牌,牌顶拿牌,这样操作一次,让自己的牌最大,这里我比较牌的大小的时候排了一下序便于判断顺子和同花,然后对子和炸弹什么的判断我写的稍微有些繁琐,不过我的思路是很简化的。#include#include#include#include#include#i原创 2015-09-17 20:02:31 · 512 阅读 · 0 评论 -
UVA714给出n个数分成m个部分,使和最大的最小
这题,小白书上有讲,所以当时也没多想直接二分,分完之后,发现有问题,他说前面的尽量小,这里就要贪心,从后面贪心,只要和值不大于二分的值就一直二分,然后发现还是不对,看了别人的,忽略了一个问题,二分的时候x的初始值不能是零,因为我写的判断二分的函数比较特殊,所以如果判断的值小于全部的数也能过,所以,这里x的初值注意取全部数的最大值。#include#include#include原创 2016-03-24 17:57:19 · 1951 阅读 · 0 评论 -
uVA311包裹包含
这题本来是个水题,但是我前面坐的是统计前面几个盒子能装下1X1盒子的数量,估计会超LL,我没改成LL,一直WA,然后我改成一边统计,一边比较,就A了。这里贴上代码,写的略微复杂:#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2016-03-11 22:58:57 · 387 阅读 · 0 评论 -
UVA10700求只有加法和减法的表达式的最大值和最小值
这题,不难,想了一会,1A,代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespace std;const int maxn=1e7+10;const do原创 2016-03-11 19:11:04 · 438 阅读 · 0 评论 -
UVA10487二分查找上界和下界
注意二分查找,查找上界的时候,返回的是等于查找的数的第一个位置,如果没有,返回前面比他大那个数的位置,如果全部数都比他大,则返回全部数的下一个坐标,注意这里。查找下界的时候,返回的是小于等于b的最后一个元素,如果全部都小于,返回第一个数前面那个数的坐标。#include#include#include#include#include#include#include#inc原创 2016-03-11 13:21:00 · 475 阅读 · 0 评论 -
UVA10706数字连排,求第i个位置的数字,二分
一个数组记录,是s1s2....sk的数字个数,然后二分,转化为字符串,即可求出第i个位置的数字,具体的看代码:#include#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing namespa原创 2016-03-11 11:50:22 · 363 阅读 · 0 评论 -
UVA10714线段上的蚂蚁
这个题最小的时间很容易就想明白了,就是最中间的值,中间值左边的全部向左,右边的全部像右。至于这个最大值,怕自己的想法有漏洞,想了很久,结果最后经过推导,就是建设蚂蚁全部向左或者全部向右,即取a[n]和m-a[0]中的最大值。原创 2016-03-21 21:10:54 · 314 阅读 · 0 评论 -
UVA10057中位数的定义,个数
这题主要是求中位数,和中位数相等的数字的个数,和中位数等价的数字的个数。一个数列中,找一个数字,使得数列中所有数字到这个数的距离和最小,这个数就是中位数。具体看代码:#include#include#include#include#include#include#include#include#include#include#includeusing namesp原创 2016-03-06 15:48:36 · 441 阅读 · 0 评论 -
UVA10341二分解方程
这里没答案的情况怎么判断,我想复杂了,因为是单调函数,x的最大值和最小值带入方程同号肯定是没答案的,否则肯定就是有答案的,还有就是这里二分的时候eps的大小,我设置的eps,1e-4,1e-5,1e-6都不过,1e-7才能过,不知道为什么。#include#include#include#include#include#include#include#include#i原创 2016-03-06 15:01:23 · 390 阅读 · 0 评论 -
UVA270sscanf的使用
这题数据比较小,所以直接当做一个数学题就行了,主要就是输入的问题,因为输入的问题RE了好几遍,最后看到别人用的sscanf,改了就过了。#include#include#include#include#include#include#include#include#include#include#include#define LL long longusing nam原创 2016-03-06 14:26:09 · 338 阅读 · 0 评论 -
UVA1973*3用七个碎片拼成正方形,正方体的旋转和平移,即矩阵变换
状态搜索题,重点不是状态,而是这道题的代码,以及空间想象能力,当然,做个几个星期,以我的水平也不见得做的出,看了一下别人的代码和题解,基本上理解了,这里先讲一下,正方体的变换:1、首选我们要根据碎片,求出所有碎片的不重复的三维构形,可以推论得到碎片的最多不同构形有6*4=24种,其中6表示,无论是碎片还是立体都会有6个面,依次使6个面朝向自己,这样相当于有6种不同的旋转方式了(对于原创 2015-10-09 21:52:51 · 1319 阅读 · 0 评论 -
cf560B一个矩形如何能包含另外俩个矩形
自己画矩形画了半天唯恐有什么漏的,最后没时间了,怒交一发,竟然过了,俩个矩形本来的摆法有四种,然后另外一个矩形套在外面,能套下的话有俩种放法:#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#defi原创 2015-07-23 21:18:02 · 649 阅读 · 0 评论 -
UVA10110完全平方数的约数为奇数个
水题总是不让人欢快的AC,int型输入竟然WA,sqrt(int)的时间竟然TLE,#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namesp原创 2015-08-03 19:49:19 · 434 阅读 · 0 评论 -
HDU5317求连续区间类每个数的质因数种类数,每个合数都能它前面的质数相乘得到
这题一直在乱想,什么都没想出来,最后被队友A了,其实只是没有想到很容易想到的每个合数都能由它前面的质数相乘得到,另外很容易知道,1e6的之内的数据质因数种类数做多为7,然后打表每个数的种类数,然后二位数组递推得到每个数前面0~7的质因数种类数的个数,从而求得区间内每个种类数的质因数个数,从而求得GCD。#include using namespace std;int F[1000翻译 2015-07-31 12:52:45 · 610 阅读 · 0 评论 -
大数类简单模板
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=1000;struc翻译 2015-07-15 14:42:14 · 327 阅读 · 0 评论 -
HDU5312三角形数即6的倍数
这个题看上去是一个贪心, 但是这个贪心显然是错的.事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的$k (k > 2)$, 使得$(m - k) mod 6 = 0$即可.证明如下:$3n(n-1)+1 = 6(n*(n-1)/2)+1$, 注意到$n*(n-1)/2$是三角形数, 任意一个自然数最多只需要3个三角形数即可表示. 枚举需要$k$个, 那么翻译 2015-07-26 23:34:49 · 313 阅读 · 0 评论 -
UVA10494大数类模板
做了几个题,重载了一下加法,乘法,除法,减法,虽然都不是很标准,但是那几道题目都A了,这道题不用模板其实很好做,一边截取,一边做除法存下了,同时做mod就行了。贴下我自己敲的模板和这道题的简单做法:#include#include#include#include#include#include#include#include#include#include#incl翻译 2015-07-27 17:29:27 · 344 阅读 · 0 评论 -
UVA11174vector实现树的搜索和使用逆元求a/b%n
考虑一棵以C为根的子树,cj为其孩子,首先每棵以孩子节点为根的子树的排列是相互独立的,满足乘法原理,所以在不考虑子树之间的排列时排列总数为∏f(cj),再考虑吧所有的子孙穿插起来(其中每棵子树子孙的相对位置不变)的排列数,这相当于有重复元素的全排列,所以f(C) = f(c1)*f(c2)...f(cj)*(s(C)-1)!/(s(c1)!s(c2)!...s(cj)!),通过递归式的求解可以翻译 2015-05-07 21:10:01 · 467 阅读 · 0 评论 -
uva11375火柴递推之多状态转移递推
分析:把”已经使用过的火柴数i”看成状态,可以得到一个图。从前往后每添加一个数字x,就从状态i转移到i+c[x],其中c[x]代表数字x需要的火柴数。当i=0的时候不允许使用数字0(最后当n>=6时,给答案单独加上1,代表整数0)。令d(i)为从结点0到结点i的路径条数,则答案f(n)=d(1)+d(2)+d(3)+...+d(n)(因为火柴不必用完,所以使用的火柴的数目可能是1,2,3,翻译 2015-04-24 20:41:37 · 549 阅读 · 0 评论 -
UVA LA3516,分支法加上递归和递推
此题采用的DP的思想,即分解为小的问题进行解决,然后又使用了递推和递归的思想,分析:设输入序列为S,d(i,j)为子序列Si,Si+1,...,Sj对应的树的个数,则边界条件是d(i,i)=1,且Si不等于Sj时d(i,j)=0(因为起点和终点应是同一点)。在其他情况下,设第一个分支在Sk时回到树根(必须有Si=Sk),则这个分支对应的访问序列是Si+1,...,Sk-1,方案数为d(i+1,翻译 2015-05-09 10:03:17 · 490 阅读 · 0 评论 -
UVA11538俩皇后可以相互攻击的方法,使用平方和公式将时间复杂度降到o(1)
这题刚开始自己做没有想到使用平方和公式化简公式,使用了一个for循环,但输入有5000组导致TLE,这题可以直接使用平方和公式将时间复杂度降到o(1),平方和公式:1^2+2^2+3^2+....+n^2=n*(n+1)*(2*n+1)/6;代码:#include#include#include#include#include#include#include#incl翻译 2015-04-21 19:40:46 · 671 阅读 · 0 评论 -
UVA11401
这题刚开始自己推的公式,假设的是三个数位想x,x+a,x+b,得出x>b-a,即俩个较大的数之差小于最小数,根据这个关系推出,代码中的公式,本人不善表达,可以自行理解:#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-04-21 20:26:01 · 549 阅读 · 0 评论 -
UVA253正方体的旋转问题
正方体选择一个为顶面,再在剩下四个中选择一个为侧面,则唯一确定一个正方体,本题枚举24种。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace st原创 2015-07-31 12:28:41 · 602 阅读 · 0 评论 -
UVA107等比数列注意特判
这题WA了一上午,最后找特判,想了好久竟然没有想到sc=1的特判情况,也是醉了,加了个特判分分钟AC了#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namesp原创 2015-08-01 10:41:43 · 378 阅读 · 0 评论 -
UVA568求n!的最后一位非零数
注意不能只保留每次的最后一位,会失真,要多保留几位#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define原创 2015-08-04 09:33:21 · 552 阅读 · 0 评论 -
UVA10112点在三角形内部和边界上
这题也是醉了,本来应该一发AC的,debug了好久发现原来只是下面求面积的时候忘记加绝对值了,醉了。三角形判定点注意绝对值的问题。#include#include#include#include#include#include#includeusing namespace std;const double eps=1e-6;int dcmp(double x){ i原创 2015-08-14 13:27:34 · 306 阅读 · 0 评论 -
UVA10177数出二维三维四维中的正方和矩方数
规律题,思路清晰的话很好找到,可惜我比较愚钝,想了好久才想出来规律:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;原创 2015-08-03 12:29:09 · 308 阅读 · 0 评论 -
uva11044
没注意用count直接输出double型会WA,还以为是自己想错了,想了半天特例没想到,后来发现ceil函数返回double型,必须转化为int型才行#include#include#include#include#include#include#include#include#include#include#include#include#include#inclu原创 2015-08-02 21:32:33 · 292 阅读 · 0 评论