
笔记
lemon- lemon
starship.
展开
-
归并排序的非递归实现
归并排序的非递归实现原创 2022-11-22 17:24:47 · 1120 阅读 · 2 评论 -
UVa 230 图书管理系统 Borrowers
题目链接:Borrowers - UVA 230 - Virtual Judge (vjudge.net)https://vjudge.net/problem/UVA-230题目大意:写一个图书管理系统,它的运行步骤如下:(1)输入多个书名+作者,至END结束(2)输入多个命令 BORROW、RETURN、SHELVE , 至END结束(3)每次输入SHELVE之后,输出书籍的名称+它的位置我的解题思路:总体思路:定义两个不定长数组bks和now,先将所有的书存入bks中,当收到SH原创 2022-01-27 16:32:13 · 457 阅读 · 0 评论 -
快速幂和用矩阵快速幂解决问题
一、快速幂的基本代码int fastpow (int a, int n){ int ans = 1; while(n) { if(n & 1) ans = ans * a % mod; a = a * a % mod; n = n >> 1; } return ans;}判断奇偶性用位运算效率更高://判断n的奇偶性n & 1 == 1 //奇数n & 1 =原创 2022-01-26 11:08:47 · 291 阅读 · 0 评论 -
常用函数小结(动态储存)
头文件 #include <stdlib.h>1、malloc函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。分配一块内存(连续的)供使用,并返回首 地址的指针。2、calloc函数 void *calloc(size_t nitems, size_t size) nitems 要被分配的元素的个数;size 要被分配的元素的大小。 分配所需的内存空间,并返回一个指向它的指针...转载 2021-12-05 21:53:09 · 179 阅读 · 0 评论 -
UVa 1583 生成元问题 (打表法优化运算时间)
刚看到题目的时候,第一想法是用循环做,即每次都从1~100000枚举,如果遇到符合条件的就输出即可,但是仔细想想,这样的话每次都要进行n-1次的枚举,要消耗大量时间。下面是紫书中给出的“打表法”:可以说,颠覆了我对打表法的认知,没想到活用打表法,可以这样显著降低时间复杂度。下面先上我根据紫书的提示写的代码:#include <stdio.h>int a[100005],i,j;int main (){ int n,t,m; for(i=1;i<..原创 2021-11-24 23:05:43 · 289 阅读 · 0 评论 -
C语言---<string.h>函数库常用简单函数
1、char * strcat (char * dest,const char *src) 把src所指向的字符串追加到dest所指向的字符串的结尾。2、char * strchr(con char *str , int c) 在参数str所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。3、int strcmp ( const char * str1 , const char *str2) 字符串大小的比较是以ASCII 码表上的顺序来决...原创 2021-11-18 19:35:46 · 399 阅读 · 1 评论 -
2021-11-14 洛谷练手总结
#include <stdio.h>int main (){ int x; int a=0,b=0,c=0,d=0; scanf("%d",&x); if(x%2==0&&(x>4&&x<=12)) a=1; if(x%2==0||(x>4&&x<=12)) b=1; if((x%2==0&&(x<=4||x>12))||(x%2!=0.原创 2021-11-14 22:48:18 · 307 阅读 · 0 评论 -
UVa10082---WERTYU
题目见紫书p47//自己敲的代码,过程有一点点繁琐#include <stdio.h>int main (){ char s[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; int c; int judge=1; while((c=getchar())!=EOF) { for(int i=0; ;i++) { if(s[i原创 2021-11-05 15:34:51 · 209 阅读 · 1 评论 -
OJ---递归求解爬楼梯
Description有一楼梯共M级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?-----------------------------------------------------------------------------Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。被禁用的关键字:for, while, do, break, continue, goto。原创 2021-11-04 19:44:06 · 1007 阅读 · 1 评论 -
OJ---百钱买百鸡问题
Description“百钱买百鸡”是我国著名的古代数学问题,中国古代数学家张丘建在他的《算经》中提出了这样一个问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?你的任务是求解下面这个问题。问题是这样描述的:a文钱可买一只公鸡,b文钱可买一只母鸡,c文钱可买d只小鸡。用m文钱买n只鸡,那么有公鸡x只、母鸡y只、小鸡z只。求解出符合题意的x,y,z。Input输入为一张表。第一行是一个固定不变的表头,格式见sample。后面有多行,每行为一组测试数据。每组测试原创 2021-11-04 18:54:46 · 882 阅读 · 0 评论 -
2021年11月1日—输出格式小技巧
#include <stdio.h>int main (){ int a[1005]; int n,k; int first=1;//前方高能预警 scanf("%d %d",&n,&k); for(int i=1;i<=n;i++) a[i]=1; for(int t=2;t<=k;t++) for(int i=t;i<=n;i+=t) a[i]++; for(int i=1;i<=n.原创 2021-11-01 23:46:30 · 213 阅读 · 0 评论 -
c语言——输入输出函数简单比较
gets和scanf的区别1、gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。例如:如果输入为"helloworld"时,上面程序的运行结果是"helloworld"。而如果用scanf则只能输出hello2、scanf对末尾回车符的处理:把回车符保留在缓存中。gets对末尾回车符的处理:接收回车,但把回车替换为\0.3、gets的返回值为char*型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL;scanf返回值为int型,返回实...转载 2021-10-31 23:34:25 · 410 阅读 · 0 评论 -
2021年10月28日错误总结及心得
#include <stdio.h>#include <ctype.h>int a[10];//此处为全局变量数组,未初始化,则其默认值为0int main (){ //int a[10]={0}; 此处为局部变量数组,未初始化,则其为垃圾值 int c; while((c=getchar())!=EOF) //此处c=getchar()必须用括号括起,因为=的优先级最低,若不加括号,则a[]将一直被赋值为1 if(isdigit(c)).原创 2021-10-28 23:46:57 · 102 阅读 · 1 评论 -
c语言---冒泡排序(一维数组)
根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。void sort(int a[],int len){ int temp; for(int i=0;i<len-1;i++) for(int j=0;j<len-i-1;j++) if(a[j]>a[j+1]) {转载 2021-10-27 23:58:02 · 612 阅读 · 1 评论