USTC中科大机试
GeroCI
KdeLab@USTC
展开
-
USTC机试—(两个字符串序列比较直接用strcmp(str1,str2))
str1>str2 返回值为正数str1=str2返回值为0str1<str2返回值为负数原创 2018-03-13 20:57:13 · 419 阅读 · 0 评论 -
USTC机试——队列循环报数问题
#include<stdio.h>#include<stdio.h>#include<queue>using namespace std;//引入队列头文件注意的格式标准int main(){ queue<int> q; int n; while(scanf("%d",&n)!=EOF){ for(int i=1;i<...原创 2018-02-25 14:55:19 · 437 阅读 · 0 评论 -
USTC机试——判断回文数,限制最大位数为15位
注解:由于此题限制位数用字符串算法判断回文数比较方便,因为如果用数字算法判断回文数,不好控制位数代码如下#include<stdio.h>#include<string.h>bool judge(char *s){ int len=strlen(s); int temp=len/2; for(int i=0;i<temp;i++){ if(s[i]...原创 2018-02-25 13:53:00 · 241 阅读 · 0 评论 -
USTC机试—计算连续子序列之和的最大值
写的很好http://blog.csdn.net/zzl913657644/article/details/52431011此处有四中方法,我这记录了最简单的方法//求最大子序列之和,最优起点法,三重循环法外两重是起点和终点,两重循环法//最优起点法如下,负数肯定不是起点,前n项为赋值肯定也不是起点#include<stdio.h>#define N 100 int main(...转载 2018-02-21 21:36:46 · 227 阅读 · 0 评论 -
USTC机试——求最大等差子序列的长度
如图中所详述:代码如下所示:#include<stdio.h>#include<string.h>#define N 100int main(){ int ans[N],count=0; printf("请输入您的数字(ctr+z结束):\n"); while(scanf("%d",&ans[count])!=EOF){ count...原创 2018-03-11 20:00:33 · 723 阅读 · 0 评论 -
USTC机试——去除多余空格,并将首字母大写输出
//去除多余的空格并且将首字母大写输出#include<stdio.h>#include<string.h>#define N 1000struct E{ char s[N];}E[N];int main(){ FILE *fp1,*fp2; fp1=fopen("1.in","r"); fp2=fopen("1.out","w");原创 2018-03-11 19:22:49 · 500 阅读 · 0 评论 -
USTC机试—将文件中输入的两个十进制数字异或后输出二进制到另一个文件中
//算法求解:给两个十进制数先异或然后输出其二进制数字#include<stdio.h>#include<stdlib.h>#define N 100int main(){ FILE *fp1,*fp2; fp1=fopen("1.in","r"); fp2=fopen("1.out","w"); int s1,s2; char str1[N];原创 2018-03-04 15:26:59 · 454 阅读 · 0 评论 -
USTC——从文件中读出前序和中序遍历序列,然后将后序序列输出到另一个文件中
唯一注解:此处采用静态方法申请了部分空间,避免动态申请结点出现不必要的错误代码及注释如下:#include<stdio.h>#include<string.h>#define N 100struct Node{ struct Node *left; struct Node *right; char c;}Tree[N];int loc;Node *c...原创 2018-02-25 00:47:56 · 245 阅读 · 0 评论 -
USTC机试——微信发红包程序
#include<stdio.h>#include<time.h>#include<string.h>#include<stdlib.h>#define N 100int main(){ double money,ans[N]; int num; double min=0.01; while(scanf("%lf%d",&am...原创 2018-03-11 11:06:55 · 379 阅读 · 0 评论 -
USTC机试——根据先序和后序建立中序遍历的一种可能序列
#include<stdio.h>#include<string.h>#define N 100struct Node{ struct Node *lchild; struct Node *rchild; char c;}Tree[N];int loc=0;Node *create(){//静态分配一个结点 Tree[loc].lc...原创 2018-03-11 01:10:00 · 265 阅读 · 0 评论 -
USTC机试——函数+算法处理十进制数字转化成16进制数字
代码如下://算法求解:将十进制数字转化成十六进制数字#include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>#define N 100using namespace std;int main(){ stack<char> q; int...原创 2018-03-10 16:39:56 · 264 阅读 · 0 评论 -
USTC机试——根据输入的文章进行对应的操作
/* 中科_2010_1 */#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <time.h>#include <ctype.h>#define maxn 101// 存储每行每个单词 ...原创 2018-03-02 20:51:45 · 279 阅读 · 0 评论 -
USTC机试—根据文件中的一串数字建立二叉排序树并且
//算法思想:根据输入序列建立二叉排序树,最后用后序遍历输出该二叉树#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100 struct Node{ struct Node *lchild; struct Node *rchild; int c;}Tree[N...原创 2018-03-02 17:51:43 · 723 阅读 · 0 评论 -
USTC——给一个无向图,判断是否存在这样一个点,当删除其之后,无向图不是连通图,存在输出一个即可,不存在输出删除所有的任一个结点仍然连通
具体题目如图:代码如下://算法求解:先写出判断是否是连通图的方法,然后用for循环判断一下即可#include<stdio.h>#include<string.h>#include<vector>using namespace std;#define N 100int Tree[N];int sum[N],max;//记录连通分量中个数vect...原创 2018-03-11 22:13:20 · 857 阅读 · 1 评论 -
USTC机试之——最小生成树问题(文件中读取顶点信息并将最小生成树输出到另一文件中)
7.in文件中6 9//分别是顶点数 路径数1 2 2//分别是顶点信息和顶点之间路径长1 3 11 4 52 4 32 5 23 4 43 6 64 5 15 6 57.out文件中输出信息是:1 3 14 5 11 2 22 5 25 6 5最小生成树权值总和:11算法思想:利用并查集,重载<符号,将权值重新排序后,递增检查是否在同一棵树上,如果不在则合并并查集,同时将路径信息输出到相应...原创 2018-02-25 16:35:28 · 262 阅读 · 0 评论 -
USTC机试——后序序列+中序序列得先序序列(序列信息保存在文件中)
输入文件:7.in的内容如下cedbigfacbedafig输出文件:7.out的内容如下:abcdefgi思想同前面写过的文章里面前序中序转后序思想一样;代码如下:#include<stdio.h>#include<string.h>#define N 100char str1[N],str2[N];//记录后序和中序序列struct Node{ Node...原创 2018-02-25 17:28:57 · 211 阅读 · 0 评论 -
USTC机试——八皇后问题,输入棋盘的宽度,输出可能解的个数
#include<stdio.h>#include<stdlib.h>#include<math.h>#define N 100int queen[N]={0};int sum=0;int max;//保存从文件中读入的棋盘宽度FILE *fp1,*fp2;bool place(int n){//此函数用来判断当前行是否可以放置皇后 for(int i=0;i&...原创 2018-03-13 20:06:20 · 304 阅读 · 0 评论 -
USTC机试——输入一行单词,输出其幂集合运算后的集合
代码如下//算法求解:输入一行单词,然后把单词的幂集合输出#include<stdio.h>#include<string.h>#define N 100int main(){ char s[N]; scanf("%s",s); int len=strlen(s); printf("{空集,"); for(int i=1;i<len...原创 2018-03-13 17:48:42 · 247 阅读 · 0 评论 -
USTC机试——从文件中读出顶点对和其之间的权值,求出最短路径的同时输出最短路径包含的结点(此题用floyd算法)
题目描述如图所示:#include<stdio.h>//floyd算法求解最短路径问题,注解此法可以求解出所有节点之间的最短路径问题,如果在没有oj要求的基础上此方法非常实用而且简单#include<string.h>#include<vector>using namespace std;#define N 100int main(){ int an...原创 2018-03-06 00:17:41 · 382 阅读 · 0 评论 -
关于vector的问题,只能用size的循环实现输出,此外,取vector内的值可以用下标取出
如vector<int> q;for(int i=0;i<q.size();i++){ printf(q[i]);}上述形式可以输出信息。原创 2018-03-06 00:08:38 · 381 阅读 · 0 评论 -
USTC机试—火车订票系统
中科大这几年的机试题真的是。。。其实emm如题:#include<stdio.h>#include<string.h>#include<queue>#define N 100using namespace std;struct path{ int a,b;//起点和终点 int num;//数量}E[N];int main(){ ...原创 2018-03-05 23:14:08 · 295 阅读 · 0 评论 -
USTC机试—拓扑排序加强版
如题所示://算法求解:求拓扑排序的问题#include<stdio.h>#include<string.h>#include<stdlib.h>#include<vector>#include<stack>using namespace std;#define N 100vector<int> E[N];//...原创 2018-03-05 22:13:36 · 270 阅读 · 0 评论 -
USTC机试—科学计数法(strchr和atoi函数的相关算法考察)(两个数求和只要有一个double就是double值)
#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100int main(){ char str1[N],str2[N]; double s1,s2; int a,b,flag; FILE *fp,*fp2; fp=fopen("1.in","r"); fp2=fop...原创 2018-03-05 16:05:37 · 393 阅读 · 0 评论 -
USTC机试之——经典算法之dijkstra算法
//注:输入数据在文件中#include<stdio.h>#include<string.h>#include<stdlib.h>#include<vector>using namespace std;#define N 100int ans[N];struct E{//邻接表结构体 int next; int cost;...原创 2018-03-12 17:30:53 · 257 阅读 · 0 评论 -
USTC机试—字符串处理之模式匹配问题
#include<stdio.h>#define N 100bool judge(char *p){ while(p){ if(*p=='a'){//嵌套匹配 p++; if(*p=='b'){ p++; if(*p=='c'){ p++; while(*p!='d'){ p++;//跳过任意个中间字符 } if(p==NUL...原创 2018-03-05 12:53:14 · 246 阅读 · 0 评论 -
USTC—摸球问题
代码如下:#include<stdio.h>#define N 100struct E{int x,y,z;//存储成立的个数}E[N];int main(){ FILE *fp; fp=fopen("2.out","w"); int count=0; int x,y,z; scanf("%d%d%d",&x,&y,&z);//红黄...原创 2018-03-04 21:48:54 · 543 阅读 · 0 评论 -
USTC——从文件中读入一个二叉树,然后后序遍历该二叉树。
读入文件中的信息如下所示:输出文件是:3 2 4 1 代码如下:#include<stdio.h>#include<string.h>#define N 100struct Node{ struct Node* lchild; struct Node* rchild; int c;}Tree[N];//二叉树结点结构体struct s{ i...原创 2018-03-04 21:46:04 · 1236 阅读 · 1 评论 -
USTC机试——判断一个数是不是完全数
代码如下:#include<stdio.h>#define N 100int main(){ int n; while(scanf("%d",&n)!=EOF){ int sum=0; for(int i=1;i<n;i++){ if(n%i==0)sum+=i; } if(sum==n)printf("Yes"); else ...原创 2018-02-25 19:53:35 · 484 阅读 · 0 评论 -
USTC机试—输入一个英文句子,然后倒叙输出,单词不用倒叙,只要单词之间倒叙即可
唯一注解:c程序只适合将单词间有一个空格的句子逆序输出#include<stdio.h>#include<string.h>#define N 100int main(){//注此程序只能处理单词之间相隔一个空格,其余更加复杂的情况请用string字符串中的字符串处理函数进行处理 char s[N]; gets(s);//此处用gets函数 int len...原创 2018-02-25 19:41:48 · 537 阅读 · 0 评论 -
USTC机试——求经过中间结点的最短路径问题,输出最短路径记录
代码如下://算法求解问题:算法求解的是最短路径问题,但是要经过中间节点k而且文件的输入格式难度也有所加大 //算法求解问题:算法求解的是最短路径问题,但是要经过中间节点k而且文件的输入格式难度也有所加大#include<stdio.h>#include<string.h>#include<stdlib.h>#include<vect...原创 2018-03-09 19:41:51 · 881 阅读 · 0 评论 -
USTC机试—从键盘输入 N,建立 N*N矩阵,每个元素是一个字符串,为每个元素赋值。然后求 出按字典序排列最大的元素所在的行列。
#include <stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>using namespace std;#define N 100struct E{ char s[N]; int i,j;//保存行列值 bool operator <...原创 2018-03-02 09:26:51 · 498 阅读 · 0 评论 -
USTC机试-从文件内读入一个矩阵接着将其转置输出到屏幕
#include<stdio.h>#define N 4//自己定义矩阵大小int main(){ FILE *stream; intmatrix_txt[N][N];//代表文件中的矩阵 int matrix[N][N];//代表当前储存转置矩阵的数组 stream=fopen("matrix.txt","r");//设置要读的文件路径及其权限...原创 2018-02-18 22:44:17 · 525 阅读 · 0 评论 -
USTC机试——根据浮点数序列输出数列的huffuman编码
思想:1:huffuman并不唯一(完整代码在最低端) 2:利用<queue>头文件中的priority_queue队列实现结点的存储,优先队列是实现自动调整结点顺序的一种数据结构,由于我在结构体中重载的小于符号是根据其数值排序,故可以实现从小到大的自动排序。 3:每个树的结点的结构体如下:struct Node{ struct Node *l...原创 2018-03-07 23:56:27 · 202 阅读 · 0 评论 -
USTC机试——将文件中矩阵转置和另一个矩阵求和后输出到另一个文件
输入文件:2.in3 2//行列1 24 57 81 2 45 7 8输出文件:2.out2 6 11 7 12 16 代码如下://将读出的矩阵先转置然后和另一个对应的矩阵相加输出到文件中#include<stdio.h>#include<string.h>#define N 100int main(){ int a[N][N],b[N][N]; //从文件中...原创 2018-02-27 17:12:47 · 310 阅读 · 0 评论 -
USTC机试——十进制转换成任意m进制数字
唯一注解:用栈的思想将余数压入栈中然后依次输出就可以了,在此过程中要注意商为0时的最后一个余数,并且要注意余数大于0时将其转化成字母进制。代码和注释如下://输入十进制整数将其转换成任意进制的数即可#include<stdio.h>#include<string.h>#include<stack>using namespace std;int main...原创 2018-02-27 16:55:06 · 577 阅读 · 0 评论 -
USTC机试—按照字典索引顺序的建立,输出行号和单词
如:i am a student from china输出:i 1 am 1 a 2 student 2 from 2 china 3/*#include<stdio.h>//此算法是重新对每一个单词按照字典顺序排序#include<algorithm>usin...原创 2018-02-27 16:15:33 · 272 阅读 · 0 评论 -
USTC机试——简单模式匹配算法(非kmp)
思想:从当前主串起始下标开始,向后遍历子串长度的字符串,如果匹配数据则输出起始下标和终止下标,当然主串起始下标的范围是0到主串长-子串长(闭区间),如果到结尾还没有匹配的就在文件中输出0代码如下://字符串匹配问题#include<stdio.h>#include<string.h>#define N 100int main(){ FILE *fp1,*fp...原创 2018-03-07 13:55:23 · 228 阅读 · 0 评论 -
USTC机试——关于itoa函数 itoa(int,char *,int)
第一个int是待转换的整数;第二个int是要转换成的进制数;中间的字符串是用来存储转换后的结果原创 2018-03-07 10:41:53 · 486 阅读 · 0 评论 -
USTC机试——从一个文件中读出两个矩阵,求出其乘积将矩阵输出到另外一个文件中
输入文件:3.in3 31 2 34 5 67 8 93 21 24 57 8输出文件:3.out30 36 66 81 102 126 代码如下://思想:从文件中读入两个矩阵,输出矩阵相乘的结果#include<stdio.h>#define N 100int main(){ FILE *fp1,*fp2; int a[N][N]; int b[N][N];//定...原创 2018-02-27 15:00:48 · 599 阅读 · 0 评论 -
USTC机试—约瑟夫环的问题
唯一注解:此处不用推导出的公式。而是利用队列的方法,直接将报号为指定数字前的数据压入到队列结尾,如此往复循环,则可以输出正确结果//约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include<...原创 2018-02-27 14:19:46 · 236 阅读 · 0 评论