- 博客(86)
- 资源 (1)
- 收藏
- 关注
原创 堆排序(C语言实现)迭代
首先分清二叉树和堆的区别 堆 可以被定义为一棵二叉树,树的节点中包含键(每个节点一个键),并且满足下面两个条件: (1)树的形状:简称为完全二叉树,这意味着,树的每一层都是满的,除了最后一层最右边的元素可能缺位。 (2)父母优势:堆特性(heap property)每一个节点的键值都要大于或者等于它子女的键(对于任何叶子我们认为这个条件都是自动满足的)只存在一棵N个节点的完全二叉树。
2017-03-22 21:58:39
1101
原创 求字典序的下一个全排列
http://blog.csdn.net/zwb8848happy/article/details/7318160 这是一个博主用int型数组实现的我比较倾向于字符串,字符串的逆转更方便一点 原理:百度#include<stdio.h>#include<stdlib.h>#include<string.h>void rev(char s[],int l,int len);int main(
2017-03-22 13:01:32
1048
转载 math.h常用数学函数
输出格式 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入: < math.h > 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值 sin-1x,x的值在
2017-03-22 10:53:32
3030
转载 string.h C语言 函数集合
字符串拷贝1 @函数名称: strdup 函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: #include <stdio.h>#include <string.h>#include <alloc.h>int
2017-03-22 10:50:12
850
原创 qsort具体实现
先上几个例子: 对int型一维数组的排序 对结构体一级排序qsort函数是C语言的函数,所以C++的去看sort函数 其头文件是 < stdlib.h > qsort函数相当于一个基本的快排函数,其原理是三分组(具体的可以去百度)根据大于,等于,小于来分别划分qsort函数的函数声明: void qsort( void * base, size_t num, size_t width
2017-03-22 09:59:57
826
原创 北航计算机机试15单词排序
【简要题意】 输入一篇可能未经排版的文章,挑选出其中的单词【单词中不包含“(”等特殊符号】,然后按字典序输出。题目确实是比较简洁 - 首先它给出了单词中不包含特殊符号,这一步应该是要筛选出给的文章中符合’单词’标准的单词其次则是对这些单词的一个按照字典序列的排序,在string.h头文件中,strcmp函数的比较大小的原则,则是按照字母表的顺序进行排序 所以在我们比较的过程中,我可以来
2017-03-22 08:32:34
1151
原创 重定向
当你要输入一个矩阵或者很多测试用例的时候,人工输入往往费时 上机的时候时间尤为重要,你可以自己写一个小文档,重定向输入输出 从人工输入改成从文档获取输入,这种输入一般是碰到EOF程序停止FILE *tmout=stdout;freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);放在main函数的最上面 其中in.txt文档放在你
2017-03-22 07:41:27
479
原创 北航计算机机试15窗口点击模拟
明天出发! 【题意】 在计算机屏幕上,有 N 个窗口。窗口的边界上的点也属于该窗口。窗口之间有层次的区别, 在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你用鼠标点击某个点 的时候,若其在窗口内,你就选择了处于被点击位置所属的最顶层窗口,并且这个窗口就会 被移到所有窗口的顶层,而剩余的窗口的层次顺序不变,如果你点击的位置不属于任何窗口 计算机就会忽略
2017-03-20 22:50:26
3433
转载 北航计算机机试10泰勒公式cos(x)
利用泰勒公式求cos(x)=1-x2/2!+x4/4!-……公式已给,重要的就是注意细节(比如阶乘的存储最好用double类型),二级C语言的难度。学校给的答案,,题目也模糊,只要懂怎么写就行 看看 即可 以7的精度算的#include <stdio.h>#include <math.h>#define PI 3.14159265358979323846int main(){ in
2017-03-20 16:48:02
1772
原创 北航计算机机试09迭代求立方根
题目描述: 立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。 输入: 输入有多组数据。 每组一行,输入x n。 输出: 迭代n次后的立方根,double精度,保留小数点后面六位。 样例输入: 3000000 28 样例输出: 144.22495
2017-03-20 16:34:49
685
原创 北航计算机机试08字符串匹配
题目描述: 读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。 输入: 输入有多组数据。 每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(
2017-03-20 15:35:01
717
原创 北航计算机机试09数组排序
题目描述: 输入一个数组的值,求出各个值从小到大排序后的次序。 输入: 输入有多组数据。 每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。 输出: 各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。 样例输入: 4 -3 75 12 -3 样例输出: 1 3 2 1912kb
2017-03-19 22:26:51
617
原创 北航计算机机试06成绩排序
输入几个学生的姓名和成绩 然后按照规定的格式 按照成绩的高低 顺序输出这个可以构造一个结构体数组 将data直接排序,输出就可以了,按照规定的格式… 格式也没写出来typedef struct stu_score{ char name[20]; int score;}STUDENT;STUDENT s[20];for(int i=0;i<20;i++){scanf("%
2017-03-19 21:23:27
595
原创 北航计算机机试10判断整数数组相同06排序与数组内容结合
两个整数数组(无序,可有重复元素),判断两个整数数组是否完全相同(重复元素的话,重复次数也要相同)不知道谁有完整的题目。。 我对北航题目的理解能力有点差–首先无序重复,若判断是否完全相同的话,最简单的方法我觉得就是先比较数组长度,长度相同的话再排序,然后依次比较,有不同就return,最坏的情况下就是前n-1个元素都相同,第n个元素不同,比较了n次,但最坏情况下也是线性的,算上排序的时间复杂度应
2017-03-19 21:03:32
477
原创 北航计算机机试07排序10归并字符串
将两个升序字符串合并成一个升序字符串,相同的字母,出现一次。个人认为:首先输入的一定是升序的字符串,所以没有重复的字母,那么相同的字母只有在比较的时候才能发现,两个升序的字符串合并成一个字符串,是属于线性表的归并排序可以用数组来存储线性表,代码如下#include<stdio.h>#include<string.h>int main(){ char a[100]; char b
2017-03-19 20:21:12
516
原创 北航计算机机试09字符串的查找删除
字符串的查找删除 给定文件filein.txt 按要求输出fileout.txt。 输入:无空格的字符串 输出:将filein.txt删除输入的字符串(不区分大小写),输出至fileout.txt sample 输入:in 输出:将filein.txt 中的In、IN、iN、in删除,每行中的空格全部提前至行首,输出至fileout.txt filein.t
2017-03-18 20:36:10
604
转载 北航计算机机试07字符串统计
从输入的字符串中,统计空格,回车,TAB出现的次数#include <stdio.h>#include <string.h>int main(){int space_count,enter_count,tab_count;space_count = enter_count=tab_count=0;char ch,buf[1024];//设置数组容量值为最大///////////////
2017-03-18 16:00:42
561
原创 北航计算机机试13简单版八皇后
如题,确实是简化了不少,连思路都说出来了…. 按这个思路来的话#include<stdio.h>#include<string.h>int main(){ int a[8][8]; char m; int i,j,k; int l,r; int flag=0; for(i=0;i<8;i++) { for(
2017-03-17 20:49:47
1024
原创 北航计算机机试15相亲数
北航11年孪生数你会发现这两个惊人的相似,对!历史就是这么惊人的相似哈哈哈 【题意】 如果对于两个大于 1 的正整数 x 和 y,x 除了本身以外的因子之和等于 y,y 除了本身以外的 因子之和等于 x,则称 x 和 y 是一对相亲数。比如 220 除了本身以外的因子之和 110+55+44+22+20+11+10+5+4+2+1=284,而 284 除了 本身以外的因子之和
2017-03-17 18:59:13
1144
原创 北航计算机机试08素数
输入一个整数,要求输出所有从1到这个整数之间个位为1的素数,如果没有则输出-1(30分)#include<stdio.h>#include<stdlib.h>int main(){ int max; int len,i,j; int flag; while(scanf("%d",&max)!=EOF) { flag=0;
2017-03-17 18:33:23
373
原创 北航计算机机试11孪生数
【问题描述】 孪生数定义: 如果 A 的约数(因数,包含1,但不包含A本身)之和等于 B , B 的约数(因数)之和等于 A , A 和 B 称为孪生数(A和B不相等)。试找出正整数 M 和 N 之间的孪生数。 输入: 从控制台输入两个正整数M和N(1<=M#include<stdio.h>#include<time.h>int main(){ int m,n;
2017-03-16 22:45:06
1006
原创 北航计算机机试11字符串扩展
【问题描述】 从键盘输入包含扩展符’-‘的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd,并输出扩展后的字符串。 要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。 【输入形式】 从键盘输入包含
2017-03-16 21:50:01
710
原创 北航计算机机试08旋转矩阵
旋转矩阵 任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。 要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。(60分) 我一直觉得这句话有含义…… 思路:旋转一次则是 旋转90°:a[i][j]=a[j][n-1-
2017-03-16 20:57:13
635
原创 北航计算机机试11替换矩阵
【问题描述】 先输入两个矩阵A和B,然后输入替换位置(左上角),编写程序将矩阵A中从替换位置开始的子矩阵(与B同样大小)替换为B,并输出替换后的矩阵。 【输入形式】 从控制台先输入矩阵A的行数和列数(行数和列数均大于等于1,小于等于20),然后在新的行上输入矩阵A的各行数字(以一个空格分隔的整数)。再以同样的方式输入矩阵B。最后输入替换位置(用一个空格分隔的两个整数表示,行数和列数
2017-03-16 19:35:19
1231
原创 北航计算机机试12统计关键字位置
统计关键字出现位置 输入: 一行标准c语言代码(字符个数小于300),统计出该字符串中关键字的if,while,for所在的位置,按照关键字出现的顺序依次输出。注意双引号内的不需要统计。 输入:一行标准c语言代码,字符个数小于300 输出: 关键字if,while,for对应的位置,按照关键字出现的顺序依次输出。输出格式为:关键字,后跟冒号,然后是出现的位置。扫描到关键
2017-03-15 22:53:27
788
翻译 北航计算机机试13科学计数法
给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。比如:输入0.000002,输出2e-6;输入123.456,输出1.23456e2;输入123456,输出1.23456e2#include<stdio.h>#include<string.h>#define N 100//某一步走不动的时候,change the way of yourselfint main()
2017-03-15 20:32:07
915
原创 北航计算机机试14排版
输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号后面是姓名,要求把各行冒号对齐,删除多余空格后输出。 先输入一个字,表示排版要求的冒号位置该位置号保证比各行冒号前的最大字符数还要大。再输入若干行字符,最多50行,每行最多100个字符,除空格、制表符和回车之外都是有效字符,要求每行的冒号处于格式要求的位置,冒号两边与有效单词之间各有一个空格,冒号前面的单词之间只有一个
2017-03-15 18:01:33
978
翻译 北航计算机机试14五子棋
题目描述: 输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第
2017-03-14 21:39:52
1532
原创 北航计算机机试13真分数约分
题目描述: 给一个真分数的分子分母,输出约分后的分子分母#include<stdio.h>int spify(int up,int down);int main(){ int up,down; while(scanf("%d%*c%d",&up,&down)!=EOF) {int n=spify(up,down); n==-1?printf("%d\/%d\n"
2017-03-14 21:34:44
783
原创 北航计算机机试14阶乘数
输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。 输入样例1: 145 输出样例1: 145,1!+4!+5!=145 Yes 输入样
2017-03-14 21:30:13
953
原创 北航计算机机试16逆序数
题目描述 给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。 输入 输入一个数n(0 < n<1000000000),已知输入开头不包含多余的0。 输出 如果m是n的k倍(k为整数),那么输出n*k=m。 如果m不是n的整数倍,那么输出n和n的逆序数。 样例输入 1234 1089 23200
2017-03-14 21:24:07
2478
原创 北航计算机机试16字符串的解析
题目描述 给一个c语言的enum定义语句,输出enum中规定的各项值。 输入 输入一个c语言的enum定义语句。 输出 输出enum中规定的各项值。 样例输入 enum BOOL{true,false}; 样例输出 true 0 false 1先上代码//如何输入string和char该如何选择是string字符串还是char数组//如
2017-03-14 20:16:20
1863
原创 北航计算机机试C12年小岛面积
【北航复试】 小岛面积 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 1 上面矩阵的中的1代表海岸线,0代表小岛。求小岛面积(即被1中包围的0的个数)。注意:仅求这样的0,该0所在行中被两个1包围,该0所在列中被两个1包围。 输入: 第一行输入一个整
2017-03-14 15:28:20
2038
转载 第四届蓝桥杯决赛 A组 供水设施 dp+拓扑+枚举
标题:供水设施 X星球的居民点很多。Pear决定修建一个浩大的水利工程,以解决他管辖的N个居民点的供水问题。现在一共有N个水塔,同时也有N个居民点,居民点在北侧从1号到N号自西向东排成一排;水塔在南侧也从1号到N号自西向东排成一排。N条单向输水线(有水泵动力),将水从南侧的水塔引到北侧对应的居民点。我们不妨将居民点和水塔都看做平面上的点,居民点坐标为(1,K)~(N,K),水塔为(1,
2016-05-26 16:44:09
1215
原创 动态规划(算法+理论) ★最短路径
首先介绍动态规划的概念: ①问题是由交叠的自问题构成的,是对给定问题求解的递推关系中的相同类型的*更小子问题的解*dp+回溯 ②从顶至下,避免计算不需要计算的小解(记忆) ③求解最优化问题可以用动态规划 动态规划下笔写代码前先去顶递推式 直接看实例: 一、币值最大化问题 给定一排n个硬币,其面值均为正整数c1,c2,c3……cn,这些整数并不一定两两不同,请问如何选择硬币,使得在其原始
2016-05-26 16:30:18
4716
转载 c++ 输入注意
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息; 1、cin 1、cin.get() 2、cin.getline() 3、getline() 4、gets() 5、getchar() 1、cin>> 用法1:最基本,也是最常用的用法,输
2016-05-26 14:57:51
374
原创 第四届蓝桥杯决赛第四题 高僧斗法 (nim博弈 sg函数)深究
高僧斗法古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图1所示)两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不能越过。两个小和尚也不能站在同一台阶,也
2016-05-25 21:20:08
2172
原创 第五届蓝桥杯决赛 生物芯片(完全平方数)
生物芯片X博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的。博士计划在芯片上执行如下动作:所有编号为2的倍数的光源操作一次,也就是把 2 4 6 8 ... 等序号光源打开所有编号为3的倍数的
2016-05-25 11:23:38
666
转载 DFS、BFS搜索+题目
这篇博主写的是图的深搜图的DFS附代码【转】、/*图的深度优先遍历出处:一条鱼@博客园 http://www.cnblogs.com/yanlingyin/2011-12-26 */#include #include struct node /* 图顶点结构定义 */{ int vertex;
2016-05-24 19:25:55
511
原创 第五届蓝桥杯决赛 第二题 出栈次序(catalan数)
出栈次序X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图【p1.png】所示。X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意交错。那么,该车队再次上路后,可能的次序有多少种?为了方便起见,
2016-05-23 19:26:09
2628
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅