随笔分类 -  Algorithm

摘要:回顾分治算法分治算法的英文名叫做“divide and conquer”,它的意思是将一块领土分解为若干块小部分,然后一块块的占领征服,让它们彼此异化。这就是英国人的军事策略,但我们今天要看的是算法。如前所述,分治算法有3步,在上一篇中已有介绍,它们对应的英文名分别是:divide、... 阅读全文
posted @ 2015-05-27 18:48 nomasp 阅读(642) 评论(0) 推荐(0)
摘要:插入排序及其解决思路算法的作用自然不用多说,无论是在校学生,还是已经工作多年,只要想在计算机这条道路走得更远,算法都是必不可少的。就像编程语言中的“Hello World!”程序一般,学习算法一开始学的便是排序算法。排序问题在日常生活中也是很常见的,说得专业点:输入是:n个数的一个序... 阅读全文
posted @ 2015-05-25 21:48 nomasp 阅读(259) 评论(0) 推荐(0)
摘要:#include #include using namespace std;#define MAX_N 100#define MAX_W 1000int n,W;// 从第i个物品开始挑选总重量小于j的部分int rec(int i,int j){ int res; if... 阅读全文
posted @ 2015-05-19 16:47 nomasp 阅读(117) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std;#define MAX_N 2000typedef long long ll;int N,L[MAX_N];void solve(){ ll ans=0; while(N>1) ... 阅读全文
posted @ 2015-05-19 15:55 nomasp 阅读(174) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std;#define MAX_N 2000int N,R;int X[MAX_N];void solve(){ sort(X,X+N); int i=0,ans=0; while... 阅读全文
posted @ 2015-05-19 15:17 nomasp 阅读(157) 评论(0) 推荐(0)
摘要:#include #include using namespace std;#define MAX_N 2000int N;char S[MAX_N+1];void solve(){ int a=0,b=N-1; while(aS[b-i]) { ... 阅读全文
posted @ 2015-05-19 14:42 nomasp 阅读(169) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std;const int MAX_N = 100000;int N,S[MAX_N],T[MAX_N];pair itv[MAX_N];void solve(){ for(int i=0;... 阅读全文
posted @ 2015-05-19 14:28 nomasp 阅读(163) 评论(0) 推荐(0)
摘要:#include #include using namespace std;const int V[6]={1,5,10,50,100,500};int C[6];int A;void solve(){ int ans=0; for(int i=5;i>=0;i--) ... 阅读全文
posted @ 2015-05-19 14:25 nomasp 阅读(90) 评论(0) 推荐(0)
摘要:编写一个程序实现字梯游戏。其中,单字母替换的值为1,而单字母的删除或添加的值p>0(p值由使用者指定)。#include #include #include #include #include using namespace std;const int INFINTY = 99999... 阅读全文
posted @ 2015-05-10 20:01 nomasp 阅读(155) 评论(0) 推荐(0)
摘要:1.有5个人大半夜地去捕鱼,到第二天响午才陆续醒来。第一个醒来的人将鱼分为5份,然后把多余的一条丢了……拿走了自己的一份。然后第二个人也将鱼分为5分,居然也把多余的一条给丢了……当然也不忘自己的一份。同样的,后面三个人也采用了相同的操作。那么他们至少捕了多少条鱼呢?令鱼的总数为X,则... 阅读全文
posted @ 2015-05-05 21:46 nomasp 阅读(479) 评论(0) 推荐(0)
摘要:1.假设银行一年整存零取得月息为8.9%(纯属娱乐哈),现在你手里有一笔钱,你打算在今后的100年中的年底取出10000元,到第10000年刚好取完,请问你现在该存多少?和传统的数学题不一样,这里需要逆推来计算。第i年年初的存款=(第(i+1)年年初存款+10000)/(1+0.08... 阅读全文
posted @ 2015-05-05 21:24 nomasp 阅读(255) 评论(0) 推荐(0)
摘要:一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同; 丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。#include#includei... 阅读全文
posted @ 2015-05-05 20:42 nomasp 阅读(199) 评论(0) 推荐(0)
摘要:在屏幕上打印出杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 11 5 10 10 5 1根据上图可以得到2个公式: 1)每行的第一个和最后一个为1 2)除上式得两个数外,其他数分别是上一行中... 阅读全文
posted @ 2015-05-05 20:25 nomasp 阅读(139) 评论(0) 推荐(0)
摘要:今天看到一个蛮有意思的题,是问“100!”的尾数有多少个零。尾数有多少个零,实际上指的是从这个数的最后一个不为0的数的下一个(也就是0)开始计数,一直到最后一个数(这些数自然都是0)有多少个0。好吧,也就是说13330330000的尾数有4个零……一个整数若含有因子5,则必然在求解1... 阅读全文
posted @ 2015-05-05 19:43 nomasp 阅读(365) 评论(0) 推荐(0)
摘要:前面介绍了:控制台绘制正弦/余弦曲线 , 控制台绘制正弦曲线和余弦曲线同时显示下面来看看正切曲线吧,其实也都差不多……#include #include int main(){ double y; int x,k; for(y=10;y>=-10;y--) {... 阅读全文
posted @ 2015-04-30 12:53 nomasp 阅读(236) 评论(0) 推荐(0)
摘要:看这一篇时如果不会绘制正弦/余弦曲线可以先看看这一篇哦:控制台绘制正弦/余弦曲线那么,如果想要同时显示的话,我们可能需要在同一行中绘制出3个或者4个点了。我的思路比较简略,不过算法看上去非常非常不整洁,还望得到大家的帮助……我通过Y等于二分之根号二和负二分之根号二以及Y轴将整个图形分... 阅读全文
posted @ 2015-04-30 06:41 nomasp 阅读(206) 评论(0) 推荐(0)
摘要:余弦曲线当然了,这里我们不用数组……否则就没技术含量了。正弦曲线的特点是左右对称,且左边部分的纵坐标是从1一直降到-1的,相应的右边的纵坐标是从-1一直递增到1。难点在于显示器只能按行输出,也就是说输出了一行后不能再掉头输出上一行的信息。我们自定义一个缩放系数a为10,用acos(-... 阅读全文
posted @ 2015-04-30 05:32 nomasp 阅读(330) 评论(0) 推荐(0)
摘要:一、背景斐波那契数的定义: f0=0 f1=1 fi=fi−1+fi−2(i>1)二、分析我引用两张表,大家一看便懂。1.递归(factorial 6)(* 6 (factorial 5))(* 6 (* 5 (factorial 4)))(* 6 (* 5 (* 4 (factor... 阅读全文
posted @ 2015-04-28 22:14 nomasp 阅读(313) 评论(0) 推荐(0)
摘要:一、背景霍纳(Horner)规则是采用最少的乘法运算策略,来求多项式 A(x)=anxn+an−1xn−1+...+a1x+a0 在x0处的值。该规则为A(x0)=(...((anx0+an−1)x0+...+a1)x0+a0)二、分析如果光看着式子或许会有点烦躁,不妨手动设定几个值... 阅读全文
posted @ 2015-04-28 21:25 nomasp 阅读(516) 评论(0) 推荐(0)