考研100天
研海无涯,及时上岸
这个作者很懒,什么都没留下…
展开
-
BM1反转链表[栈+头插法]
对于链表的反转,有多种方法,这里提供一种比较简单的实现方式。原创 2024-08-06 14:24:46 · 286 阅读 · 0 评论 -
C-KY214 最大的两个数
今年五一因为疫情的原因,回不去。只好刷下题目。以下是牛客网考研机试中的一个题目。题目要求找出每列中最大的两个数,然后输出的时候要求保留原矩阵的排列顺序。换句话说,输出的时候要根据矩阵的顺序进行,而不是固定将最大和次大的依此输出。否则是通不过的。简单说下思路:定义1个20个元素的数组d定义2个二维数组e和f,其中e中存储最大值,而f中储存次大值。其中e的第2个维度存储其对应的行数。依此读取输入的每个值,如果其值大于最大值,则将次大值中的更新为最大值的值。之后再将最大值进行更新。下面是对应的代原创 2022-04-30 22:06:54 · 118 阅读 · 0 评论 -
C-KY45 skew数
下面是牛客网上考研机试中的1个简单的题目要求如下:可以看到根据输入的字符串计算其对应的10进制数,根据其描述,我们可以将对应的计算方式可以归纳为∑i=0n−1ai∗(2n−1−1)\sum_{i=0}^{n-1}a_{i}\ast(2^{n-1}-1)i=0∑n−1ai∗(2n−1−1)其中iii表示字符串对应的索引,其长度为n−1n-1n−1。根据上面的公式,我们有如下的实现代码:#include <stdio.h>#include <string.h>原创 2022-04-29 16:39:19 · 212 阅读 · 0 评论 -
2021李林880题- 函数、极限、连续-基础题
好久没有写高等的文章了,今天百忙中抽出一些时间记录下最近的心得。临近考试,也没有太多空余的时间进行整理。首先是1道选择题,设函数f(x)=cos(sinx),g(x)=sin(cosx)f(x)=\cos(sinx),g(x)=\sin(cosx)f(x)=cos(sinx),g(x)=sin(cosx),则当x∈(0,π2)x\in(0,\frac{\pi}{2})x∈(0,2π)时。有函数f(u)=cosuf(u)=cosuf(u)=cosu和g(u)=sinug(u)=\sin ug(u)原创 2021-11-07 19:48:51 · 737 阅读 · 0 评论 -
Codeup[100000580]编排字符串
题目要求如下:#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { char arr[101][21] = {0}; int total; for (int i = 0; i < n; ++i) { scanf("%s", arr[i]); // 最新的记录原创 2021-05-17 20:49:19 · 90 阅读 · 0 评论 -
Codeup[100000580]字符串的查找删除
题目要求如下:需要删除输入的字符串中一些子字符串,可以通过遍历或字符串搜索算法的方式找到其对应的位置将其忽略即可。下面是实现的代码:#include <stdio.h>#include <string.h>int main() { char s[100] = {0}; while (scanf("%s", s) != EOF) { getchar(); // 大写字母转换为小写 size_t l = strl原创 2021-05-15 10:13:35 · 94 阅读 · 0 评论 -
KY205-统计单词
题目要求:要对输入字符串中单词的长度进行统计,其中字符串以点号结束。因此使用getchar读取每个字符,如果遇到空格,那么就认为1个单词结束,将其长度置0并输出。下面是实现的代码:#include <stdio.h>int main(){ char c; int length = 0; while((c=getchar())!='.'){ //如果为空格 if(c==32){ printf("%d ",原创 2021-05-14 22:01:55 · 88 阅读 · 0 评论 -
Codeup[100000580]单词替换
题目要求如下:#include <stdio.h>#include <string.h>int main() { char arr[200] = {0}; while (gets(arr) != NULL) { char a[101] = {0}; char b[101] = {0}; scanf("%s", a); scanf("%s", b); char *token = s原创 2021-05-14 21:36:26 · 108 阅读 · 0 评论 -
Codeup[100000580]字符串去特定字符
题目要求如下:#include <stdio.h>#include <string.h>int main() { char s[200] = {0}; while (scanf("%s", s) != EOF) { char c[200] = {0}; scanf("%s", c); long long pos = strstr(s, c) - s; int l = strlen(c);原创 2021-05-14 21:31:03 · 80 阅读 · 0 评论 -
Codeup[100000580]比较字符串
题目要求如下:#include <stdio.h>#include <string.h>int main() { int n; while (scanf("%d", &n) != EOF) { char s1[51] = {0}; char s2[51] = {0}; for (int i = 0; i < n; ++i) { scanf("%s", s1);原创 2021-05-14 21:25:03 · 79 阅读 · 0 评论 -
Codeup[100000605]简单计算器
题目要求如下:#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct { double a[70]; double b[70]; char o[70]; int length;} Stack;int name_compare(const void *p1, const void *p2) { int *a = (int *) p1原创 2021-05-13 21:57:10 · 92 阅读 · 0 评论 -
Codeup[100000605]Problem E-C++版本
#include <cstdio>#include <cstring>#include <stack>using namespace std;int main() { int n; while (scanf("%d", &n) != EOF) { char line[3000] = {0}; for (int i = 0; i < n; ++i) { scanf("%s",原创 2021-05-13 21:21:16 · 65 阅读 · 0 评论 -
Codeup[100000605]Problem E-C版
题目要求如下:#include <stdio.h>#include <string.h> typedef struct { char s[3000]; int length;} Stack;int main(int argc, char const *argv[]){ int n; while(scanf("%d",&n)!=EOF){ char arr[3000] = {0}; for(int原创 2021-05-13 21:11:40 · 112 阅读 · 0 评论 -
PAT甲级[1039]Course List for Student (25)-C版
263+262+26126^{3}+26^{2}+26^{1}263+262+261int get_name_id(const char *name) { int n = 0, k=1; for (int i = 2; i >= 0; --i) { n += k * (name[i] - 'A'); k *= 26; } n *= 10; n += name[3] - '0'; return n;}int ge原创 2021-05-08 16:06:29 · 185 阅读 · 1 评论 -
Codeup[100000584]Repair the Wall
题目要求如下:#include <stdio.h>#include <stdlib.h>int int_compare(const void *p1,const void *p2){ int *a = (int*)p1; int *b = (int*)p2; return *b-*a;}int main(int argc, char const *argv[]){ int L,N; while(scanf("%d %d",&a原创 2021-05-06 20:27:38 · 80 阅读 · 0 评论 -
Codeup[100000596]Course List for Student (25)-C++版
#include <cstdio>#include <vector>#include <map>#include <algorithm>using namespace std;int main() { int K, N; // K是课程数量,N是学生数量 while (scanf("%d %d", &N, &K) != EOF) { map<string,vector<int>原创 2021-05-01 16:05:18 · 150 阅读 · 1 评论 -
Codeup[100000596]Student List for Course (25)-C++版
在之前我们介绍了使用C来解决对应问题的实现方式,详情可以查阅Codeup[100000596]Student List for Course (25)-C版。下面我们来看C++版本的实现方式。主要通过哈希表map中嵌套vector来实现,其中vector中存储学生的名称。我们定义1个map类型的courses变量表示课程,其中其键名表示课程号,而键值表示学生列表。我们先判断对应的课程是否存在,如果不存在则创建对应的学生列表再进行关联,否则直接进行学生的添加。下面是实现的代码:#include &原创 2021-04-30 23:41:11 · 142 阅读 · 1 评论 -
Codeup[100000596]Student List for Course (25)-C版
题目要求如下:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <string.h>typedef struct { char name[5];} Student;typedef struct { Student *s; int length;} RelationShip[2501];int name_compare(const v原创 2021-04-30 22:57:46 · 143 阅读 · 2 评论 -
Codeup[100000604]求最大最小数
#include <stdio.h>int main() { int n; while (scanf("%d", &n) != EOF) { int min, max, d; scanf("%d",&d); min = max = d; for (int i = 1; i < n; ++i) { scanf("%d", &d); if.原创 2021-04-29 20:30:08 · 97 阅读 · 0 评论 -
Codeup[100000585]打印极值点下标
题目要求如下:#include <stdio.h>int main(int argc, char **argv) { int n; while (scanf("%d", &n) != EOF) { int k; int arr[81] = {0}; for (int j = 0; j < n; ++j) { scanf("%d", &k); for (in原创 2021-04-29 20:16:21 · 152 阅读 · 0 评论 -
Codeup[100000585]查找
题目要求如下:#include <stdio.h>#include <stdlib.h>int int_compare(const void *p1, const void *p2) { int *a = (int *) p1; int *b = (int *) p2; return *a - *b;}int search(const int *arr, int start, int end, int n) { if (start ==原创 2021-04-28 20:39:53 · 94 阅读 · 0 评论 -
Codeup[100000585]找x
题目要求如下:#include <stdio.h>int main(){ int n; while(scanf("%d",&n)!=EOF){ int arr[201] = {0}; int x, pos=-1; for(int i=0;i<n;i++){ scanf("%d",&arr[i]); } scanf("%d",&x); for原创 2021-04-28 20:08:33 · 73 阅读 · 0 评论 -
Codeup[100000584]迷瘴
题目要求如下:#include <stdio.h>#include <stdlib.h>int int_compare(const void *p1, const void *p2) { int *a = (int *) p1; int *b = (int *) p2; return *a - *b;}int main(int argc, char **argv) { int C; while (scanf("%d", &原创 2021-04-27 20:04:16 · 86 阅读 · 0 评论 -
KY229 阶乘
题目要求如下:#include <stdio.h>int main(int argc,char *argv[]){ int arr[21]= {0, 1,2,6,24,120,720,5040,40320,362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000,6402373705728000,121645100408原创 2021-04-27 19:55:31 · 84 阅读 · 0 评论 -
Codeup[100000584]找零钱
题目要求如下:#include <stdio.h>int main(int argc, char **argv) { int n; while (scanf("%d", &n) != EOF) { int m = 0; int flags = 0; printf("%d=", n); if (n >= 50) { printf("%d*%d", 50, 1);原创 2021-04-26 20:31:04 · 80 阅读 · 0 评论 -
Codeup[100000584]出租车费
题目要求如下:#include <stdio.h>int main(int argc, char **argv) { int n; while (scanf("%d", &n) != EOF) { if (n == 0) { break; } if (n <= 8) { int total = 0; if (n <= 4) {原创 2021-04-23 23:18:55 · 103 阅读 · 0 评论 -
Codeup[100000584]看电视
#include <stdio.h>#include <stdlib.h>int int_compare(const void *p1, const void *p2) { int *a = (int *) p1; int *b = (int *) p2; if (a[0] != b[0]) { return b[0] - a[0]; } else { return b[1] - a[1]; }}.原创 2021-04-21 20:22:52 · 120 阅读 · 0 评论 -
Codeup[100000583]神奇的口袋
题目要求如下:实现的代码:#include <stdio.h>int select(int *arr, int remain, int m) { if (remain == 0) { return 1; } else if (m == 0 || remain < 0) { return 0; } else { return select(arr, remain, m - 1) + select(arr, re原创 2021-04-17 20:52:03 · 161 阅读 · 0 评论 -
Codeup[100000583]数列
题目要求如下:#include <stdio.h>int main(int argc, char **argv) { int n, m; int arr[20] = {0}; scanf("%d", &m); for (int i1 = 0; i1 < m; ++i1) { scanf("%d", &n); int line = 2 * n - 1; int temp = 0;原创 2021-04-13 22:03:23 · 75 阅读 · 0 评论 -
Codeup[100000583]吃糖果
题目要求如下:#include <stdio.h>int main(int argc, char **argv) { int n; while (scanf("%d", &n)!=EOF) { int temp = 0; int a = 1, b = 2; if (n == 1) { printf("%d\n", a); } else if (n == 2) {原创 2021-04-13 21:57:10 · 106 阅读 · 0 评论 -
Codeup[100000582]String Subtraction
题目要求如下:#include <stdio.h>#include <string.h>int main(int argc, char **argv) { char c[128] = {0}; char a[10001] = {0}; char b[10001] = {0}; gets(a); gets(b); size_t len = strlen(b); for (int i = 0; i < len; ++原创 2021-04-13 21:53:17 · 67 阅读 · 0 评论 -
Codeup[100000582]Be Unique
题目如下:#include <stdio.h>typedef struct { int d[100001]; int c[100001]; int length;} Relation;int main(int argc, char **argv) { int n; while (scanf("%d", &n) != EOF) { int m; Relation r = {0}; // 耗原创 2021-04-13 21:48:28 · 81 阅读 · 0 评论 -
考研中的线性代数
至于为什么要考研,实际上是因为闲着没啥事,想找点事情打发下时间。顺便看下以后能不能搞搞机器学习,多赚点钱哈。目标院校是中大,打算如果可以上岸那么就读2年的在职研究生。为什么不考全日制研究生呢?主要是中大的全日制研究生是神仙打架.而且一大群保送的,实在竞争不过人家。另外,全日制要3年脱产学习,年纪大了不工作就得吃土了。实话说,考研中的线性代数实际上并不会出很复杂的题目,知识点就那么10-20个,但是150分占30分那样。在考研之前,实际上看过不下5本的线性代数的书,包括同济大学那本不知所云的线性代数,还原创 2021-04-13 00:34:43 · 1016 阅读 · 0 评论 -
Codeup[100000582]分组统计
题目要求如下:#include <stdio.h>#include <stdlib.h>typedef struct { int d[101]; int c[101]; int length;} Relation;typedef struct { int d[101]; int length;} Num;int relation_compare(const void *p1, const void *p2) { i原创 2021-04-12 19:46:28 · 144 阅读 · 0 评论 -
Codeup[100000582]谁是你的潜在朋友
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv) { int n, m; while (scanf("%d %d", &n, &m) != EOF) { int p; int arr[201] = {0}; int c[201] = {0}; for (int j = 0; j < n;.原创 2021-04-09 21:18:20 · 134 阅读 · 0 评论 -
Codeup[100000581]小白鼠排队
#include <stdio.h>#include <stdlib.h>typedef struct { int weight; char color[10];} Rat;int rat_compare(const void *p1, const void *p2) { Rat *a = (Rat *) p1; Rat *b = (Rat *) p2; return (b->weight) - (a->weight).原创 2021-04-09 21:09:56 · 196 阅读 · 0 评论 -
Codeup[100000581]问题G:中位数
题目要求如下:对于奇数,中位数是整个序列中间的那位。而对于偶数,中位数中序列中间2位数的平均数。对于偶数,由于C中的索引是从0开始,假设序列为arr,因此中间两位数为arr[(len-1)/2]和arr[(len-1)/2+1]。下面是实现的代码:#include <stdio.h>#include <stdlib.h>int int_compare(const void *p1, const void *p2) { int *a = (int *) p1;原创 2021-04-09 10:48:40 · 86 阅读 · 0 评论 -
Codeup[100000581]Problem B
题目要求如下:求解方法就是对其每1行、每一列及2个对角线上元素相加后按照大小关系进行排序。对于每1行的累加是最简单的,只要在for循环中将相同行中不同列元素相加即可,然后每行开始时将其置0。对于主对角线上元素的累加,只要确保每1行每1列元素索引一致即可。比较麻烦的是列向量的累加,此时可以通过偏移的方式来实现访问。列向量累加时保持列的索引不变,让行进行改变。最后是副对角线的计算,可以通过输入的n值大小减去当前位置再减去1来得到每行对应的位置。下面是实现的代码:#include <stdi原创 2021-04-08 13:05:17 · 82 阅读 · 0 评论 -
Codeup[100000593]大整数排序
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct BigNumber { int d[1001]; int len; int r;} bign;bign change(char *str) { bign a = {0}; a.len = strlen(str); for (int i = 0; i < a.len.原创 2021-04-02 21:08:50 · 132 阅读 · 0 评论 -
KY113-字母统计
题目要求如下:根据输入的字符串中大写字母,统计其出现的次数。主要解决思路是将字母转换为数字,再利用哈希的方式记录其出现的次数。为了简化操作,使用1个int数组存储这26个字母的数字,其中0表示A,26表示Z。当出现对应的字母时把对应索引的值加1。这样就得到对应字母表出现的次数。下面是实现的代码:#include <stdio.h>#include <string.h>int main(){ char s[1001] = {0}; while(scanf原创 2021-04-02 21:03:37 · 95 阅读 · 0 评论