- 博客(13)
- 收藏
- 关注
原创 整型关键字的平方探测法散列
通过这个题,了解了平方探测法,题目链接如下:https://pintia.cn/problem-sets/1369134310032203776/problems/1369136586159349764需要注意的一个点:如果i>=表长,那也将是无效探测,也就是插入不了了。奉上代码:#include<stdio.h>int m,shu,prime,cnt,flag;int vis[100010];int judge(int prime){ if(prime<=1)
2021-06-16 18:02:16
826
1
原创 字符串关键字的散列映射
什么叫写代码五分钟,debug两小时啊。。。今天就只写了两个题,几乎一直在找bug。本来我是准备借鉴大佬的ac代码的,但是找遍了也没找到比较简洁易懂的ac代码,于是自己就硬着头皮写了一份。线上题目,是一个综合性很强同时又很基础的知识点。先上题目https://pintia.cn/problem-sets/1369134310032203776/problems/1369136586159349761说一下注意到几个点:1:如果又重复单词该怎么处理比较简单。2:平方探测法是±(i的平方)这也是第二个
2021-06-16 17:56:57
358
原创 qsort的用法
今天学习了c语言的qsort函数。因为老师把c++编辑器关闭了,所以只能靠qsort了,先上题目:https://pintia.cn/problem-sets/1369139183058477056/problems/1369139267452067841#include<stdio.h>#include<stdlib.h>#include<string.h>struct node{ char num[7],name[9]; int shu;}s[100
2021-06-03 19:27:29
111
原创 指针的使用方法
今天学习c语言中<stdlib.h>下面的qsort函数,看不懂里面的指针,于是有去学习了一下指针。看到一片非常不错的博客,分享给大家。https://blog.youkuaiyun.com/Billows1988/article/details/311467另外,做一下总结:1.指针的好处:是代码更加精炼,更简洁,跟高效。2.注意事项:printf("%d",*p);中p前面的 *号,是取内容符,与int *p中的 *号是不一样的。3.数组:例如,int a[5]={1,2,3,4,5},数组名
2021-06-03 09:49:23
294
原创 顺序存储的二叉树的最近的公共祖先问题
对一个题目有感而发( 顺序存储的二叉树的最近的公共祖先问题)链接如下:https://pintia.cn/problem-sets/1369132930181685248/problems/1369133002684424203看到大佬用非常巧妙的一个方法写的找公共祖先的方法:#include<stdio.h>int a[1001];int find(int x,int y){ if(x>y) return find(x/2,y);//除以2很奇妙, //除以2总是得
2021-05-06 20:00:54
361
原创 拓扑排序
任务拓扑排序 一个工程被分解成n个子任务,编号为0至n-1。要完成整个工程需要完成所有的子任务。其中一些子任务必须先于另外一些子任务被完成。给定各子任务之间的先后关系,请编写程序给出一个合理的任务完成顺序,若工程不可行,程序亦能识别。输入格式:输入第一行为两个整数n和e,均不超过100。n表示子任务数。接下来e行,表示已知的两个子任务间的先后关系,每行为两个整数a和b,表示任务a必须先于任务b完成。输出格式:若工程不可行(一些子任务以自己为先决条件),输出“unworkab...
2021-04-15 11:55:52
1805
原创 明天
先来看一道题L1-1 明天 (10 分)小明喜欢上了日期的计算。这次他要做的是日期的加1天操作,即求在已知日期的基础上加上1天后的结果日期。如,日期为2019-11-11,加上1天,则结果日期为2019-11-12。输入格式:输入数据的第一行为一个正整数T,表示测试数据的组数。然后是T组测试数据,每组测试输入1个日期d,日期形式为yyyy-mm-dd。保证输入的日期合法,而且输入的日期和结果日期都在[1000-01-01,9999-12-31]范围内。输出格式:对于每组测试,在一行上以yyy
2021-04-15 11:45:23
1180
原创 出栈序列的合法性,数学方法
出栈序列的合法性:https://pintia.cn/problem-sets/1327978738258440192/problems/1327978890704613384大部分人用的都是模拟,,在这里我借鉴了一个博主的数学方法(由于失不小心关掉了网页,现在找不到那个c博主了,,,)。先将整个序列用数组存储(这里从下标1开始)通过两个条件判断:只要满足其中任意一个条件的都不能是合法序列:1.arr[i]>=m+i//m是栈最大容量。若不满足这个条件,说明超过了栈的最大容量,输出NO.2.
2021-04-07 18:23:06
510
1
原创 2021-03-11
关于浮点型与浮点型,浮点型与整型的比较:整形比整形是不会出错的,我们就不讨论了下面看几张图光是定义一个浮点型数据,它的值好像是不会变的(后面不会都是0,不会出现其他数字,从而它的值不会)但若是浮点乘以了一个整形,它的值可能就会改变比如图2.因为我是个新手,现在只是发现了问题,并且也栽了不少坑。若题目中实在没有办法只能想到浮点型比浮点型或是浮点型比整形,那就这么做吧,其他情况下都不建议用浮点型比浮点型或是浮点型比整型(因为很难发现这个错!!!)不建议!!...
2021-03-11 18:34:28
89
原创 2021-03-11
关于cin和scanf运行的快慢:当输入小规模数据时cin和scanf之间的差距不是很明显,但对于大数据,scanf的优势相当明显应用一个博主一个非常简单的例子:这里是引用https://blog.youkuaiyun.com/qq_37759029/article/details/80170647简单说就是cin比scanf快一些,当然,cout也比printf慢一些,题目尽量用printf和scanf。因为有些运行超时就是因为cin,cout。改用printf,scanf就不会运行超时了。比如乙级题
2021-03-11 10:14:51
194
原创 各常见常见输入的缓冲区
*关于scanf,cin,getline,gets()缓冲区的小结:看了很多大佬的博客,但是对于我这个新手来说很多看不定,不过这位博主的文章个人感觉比较易懂:这里是引用https://blog.youkuaiyun.com/as14569852/article/details/77502990先了解缓冲区。除了一整行一整行读的操作(如gets(),getline()),其余的操作(如:cin,scanf,包括getchar())都会将空格符或者回车符当作是结束符放在缓存区(放在缓存区好像是为了提高cpu
2021-03-09 23:21:28
443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人