算法编程
算法编程
多维矩阵
这个作者很懒,什么都没留下…
展开
-
Horner scheme问题
DescriptionIn numerical analysis, the Horner scheme or Horner algorithm, named after William George Horner, is an algorithm for the efficient evaluation of polynomials in monomial form. Horner’s method原创 2016-11-09 18:25:14 · 635 阅读 · 0 评论 -
俄罗斯农夫乘法(减治法)
#include <stdio.h>int Mul(int n, int m){ int sum = 0, a = 0; if (n == 0 || m == 0) return 0; if (n == 1) return m; while (n != 1) { if (n % 2 == 0)原创 2016-11-11 21:33:29 · 3527 阅读 · 0 评论 -
简单背包问题
#include <stdio.h>int main(){ int i, j, volume, n, f[100001] = {0}, weight[1000]; while (EOF != scanf("%d%d", &volume, &n)) { f[0] = 1; for (i = 0; i < n; i++)原创 2016-11-11 21:58:51 · 370 阅读 · 0 评论 -
C语言随机产生字符串
#include"stdafx.h"#include <stdio.h> #include<time.h>#include <Windows.h> //产生长度为length的随机字符串 int genRandomString(int length, char* ouput){ int flag, i; srand((unsigned)time(NULL));原创 2016-11-20 13:06:12 · 1559 阅读 · 4 评论 -
最优编辑距离问题
问题描述设A,B是两个字符串,用最少的字符操作将字符串A转换为字符串B,这里的字符操作包括删除一个字符,更改一个字符或者插入一个字符。而在这其中将字符串A转换为字符串B所用的最少的字符操作次数称为最优编辑距离。公式删除,d[i-1][j]+1;插入,d[i][j-1]+1;替换,if(a[i]==b[j]) d[i][j]=d[i-1][j-1] ,else d[i][j]=d[i-1][j-1]+原创 2016-11-20 13:09:29 · 904 阅读 · 0 评论 -
CCF2014-03-3命令行选项
问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。 选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如”-原创 2017-03-18 11:28:59 · 306 阅读 · 0 评论 -
CCF2014-09-2画图
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一原创 2017-03-18 11:45:03 · 314 阅读 · 0 评论 -
CCF2014-09-3字符串匹配
问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。原创 2017-03-18 12:04:53 · 503 阅读 · 0 评论 -
转一个几种常用排序算法的动画效果
转一个常用排序算法的动画效果图转载 2017-08-22 15:49:59 · 419 阅读 · 0 评论 -
二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路解法一:我们可以去遍历这个二维数组,但是呢,如果在面试过程中的话,这种做法是很不可取的。原因是因为时间复杂度太高了。达到了O(n的平方)。而且这种方法也没有任何技巧...原创 2018-07-30 22:19:07 · 205 阅读 · 0 评论 -
最近对问题
说明使用蛮力法,把所有点遍历一遍,找到最小#include<iostream>#include<iomanip>using namespace std;struct Point{ double x, y;}point[1000];int main(){ double min = 99999999; int n; cin >> n; for (int原创 2016-11-11 21:01:09 · 587 阅读 · 0 评论 -
模式匹配、字符串匹配(蛮力法)
**#include<iostream>#include<string>#include<algorithm>using namespace std;int StringMatch(string T,string s){ int n = T.size(); //文本长度 int m = s.size(); //模式长度 for (in原创 2016-11-11 20:47:12 · 1443 阅读 · 0 评论 -
选择排序相关问题
原理选择一个值array[0]作为标杆,然后循环找到除这个值外最小的值(查找小于标杆的最小值),交换这两个值,这时最小值就被放到了array[0]上,然后再将array[1]作为标杆,从剩下未排序的值中找到最小值,并交换这两个值。比冒泡排序减少交换次数。代码#include<iostream>#include<algorithm>using namespace std;void selects原创 2016-11-11 20:06:32 · 273 阅读 · 0 评论 -
猴子报数
描述:n个猴子围坐一圈并按照顺时针方向从1到n编号,从第s个猴子开始进行1到m的报数,报数到第m的猴子退出报数,从紧挨它的下一个猴子重新开始1到m的报数,如此进行下去知道所有的猴子都退出为止。求给出这n个猴子的退出的顺序表。输入:有做组测试数据.每一组数据有两行,第一行输入n(表示猴子的总数最多为100)第二行输入数据s(从第s个猴子开始报数)和数据m(第m个猴子退出报数).当输入0 0 0时表示原创 2016-06-01 20:20:38 · 1224 阅读 · 0 评论 -
打印杨辉三角
杨辉三角形具有如下特征: 1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 2、第n行的数字个数为n个。 3、第n行数字和为2^(n-1)。 4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。 5、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第2n个斐波那契数。将第2n行第2个数,跟第2n+1行第4个数、第2n+2行原创 2016-05-30 18:55:29 · 607 阅读 · 0 评论 -
求组合数
描述:编写一个函数,求从n 个不同的数中取r 个数的所有选择的个数。输入: 输入n 和r 的值; 当用户输入0 0 时,程序结束。输出:根据公式: C(n,r) = C(n, r-1) * (n - r + 1) / r 输出运算结果 输入数据不满足题意时候,输出”error!”输入样例:5 3 10 20 50 3 0 0输出样例:10 error! 19600#include<io原创 2016-05-30 10:40:52 · 664 阅读 · 0 评论 -
计算n的阶乘
#include<iostream>using namespace std;int fac(int n){ if(n==0||n==1) return 1; else return n*fac(n-1);}int main(){ int n; cin>>n; if(n<0) cout<<"shuruw原创 2016-05-30 10:21:57 · 572 阅读 · 0 评论 -
计算生日是星期几
编写一个程序,只要输入年月日,就能回答那天是星期几。输入一个日期,包括年、月、日。(一组测试数据)输出这个日期是星期几。1 1 1 2 1 1 2006 7 10 Monday Tuesday Monday#include<iostream>using namespace std;int main(){ int year,month,day; int i,sum=原创 2016-05-30 10:16:00 · 3931 阅读 · 2 评论 -
完数计算
一个数如果恰好等于它的因子之和,这个数就称为”完数”。 例如,6的因子为1、2、3,而6=1+2+3,因此6是”完数”。 编程序找出N之内的所有完数,并按下面格式输出其因子:N? its fastors are ? ? ?#include<iostream>using namespace std;int main(){ int a[1000]; int i,j,k=0,n原创 2016-05-28 18:08:38 · 815 阅读 · 0 评论 -
统计不同字符个数
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。###include<stdio.h>#include<string.h>int main(){ char ch; int a=0,b=0,c=0,d=0; while(1) { scanf("%c",&ch); //思想是输入一个归类统计一个 if(ch=='\n'原创 2016-05-28 15:53:54 · 1367 阅读 · 0 评论 -
最大公约数与最小公倍数
#include<iostream>using namespace std;int main(){ int n,m,t,r; cin>>n>>m; int a=n; int b=m; if(n>m) { t=n; n=m; m=t; } r=n%m; n=m; m=r原创 2016-05-28 15:20:24 · 244 阅读 · 0 评论 -
广度优先搜索与深度优先搜索
广度优先搜索(宽度优先搜索,BFS)和深度优先搜索(DFS)算法的应用非常广泛,本篇文章主要介绍BFS与DFS的原理、实现和应用。深度优先搜索图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的...原创 2018-11-04 17:39:25 · 12005 阅读 · 1 评论