01 2020 档案
摘要://输出米字型 #include<stdio.h> #include<string.h> int main(){ int n,i; scanf("%d",&n); char s[25][51]; //A与A之间点的个数 n-2 for(i=0;i<n-1;i++){ memset(s[i],'.',
阅读全文
摘要://数的统计 #include<stdio.h> #include<stdlib.h> int comp(const void *a,const void *b){ return *(int*)a - *(int*)b; } int main(){ int i,N,num=0; scanf("%d"
阅读全文
摘要://数对 #include<stdio.h> int main(){ int n,i,j; scanf("%d",&n); for(i=1;i<=n;i++){ for(j=n;j>=1;j--){ if(i*j == n) printf("%d*%d = %d\n",i,j,n); } } ret
阅读全文
摘要://数组查找及替换 #include<stdio.h> #include<stdlib.h> int comp(const void *a,const void *b){ return *(int*)a - *(int*)b; } int main(){ int N,b; int a[101]; s
阅读全文
摘要://数组排序去重 #include<stdio.h> #include<stdlib.h> int comp(const void*a,const void*b)//用来做比较的函数。 { return *(int*)a - *(int*)b; } int main(){ int a[10]; fo
阅读全文
摘要://素因子去重 #include<stdio.h> int num[4000000] = {0}; int main(){ long long n,ans; scanf("%d",&n); if(n==2){ printf("%d",n); return 0; } for(int k=2;k<=n;
阅读全文
摘要://特殊的数字四十 #include<stdio.h> int main(){ int i,sum,n; for(i=1000;i<10000;i++){ sum = 0; n = i; while(n>0){ sum += n%10; n /= 10; } if(sum == 10) printf
阅读全文
摘要:#include<stdio.h> #include<string.h> int main(){ int i,count=0,length; char str[101]; scanf("%s",str); length = strlen(str); for(i=0;i<length;i++){ if
阅读全文
摘要://未名湖边的烦恼 //递归 #include<stdio.h> int fun(int m,int n){ if(m<n) //还鞋数小于租鞋数 return 0; if(n==0) return 1; return (fun(m-1,n) + fun(m,n-1)); } int main(){
阅读全文
摘要://斜率计算 #include<stdio.h> int main(){ int x1,x2,y1,y2,k; scanf("%d%d\n%d%d",&x1,&y1,&x2,&y2); if(x2-x1 == 0) printf("INF"); else{ k = (y2-y1)/(x2-x1);
阅读全文
摘要://学做菜 #include<stdio.h> int main(){ int a,b,c,d,num = 0; scanf("%d\n%d\n%d\n%d",&a,&b,&c,&d); while(1){ if(a>=2 && b>=1 && d >=2){ //可以做菜品1 num++; a-=
阅读全文
摘要://寻找数组中的最大值 #include<stdio.h> int main(){ int i,n,max,index; scanf("%d\n",&n); int a[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); max = a[0]; index = 0; fo
阅读全文
摘要://一元三次方程求解 //直接枚举 #include<stdio.h> #include<math.h> double a,b,c,d,x; double f(double x){ return a*x*x*x + b*x*x + c*x + d; } int main(){ scanf("%lf%
阅读全文
摘要://整除问题 #include<stdio.h> int main(){ int min,max,factor; scanf("%d %d %d",&min,&max,&factor); for(int i=min;i<=max;i++){ if(i%factor == 0) printf("%d
阅读全文
摘要://整数平均值 #include<stdio.h> int main(){ int n; int sum; scanf("%d\n",&n); int a[n]; for(int i=0;i<n;i++){ scanf("%d",&a[i]); sum += a[i]; } printf("%d",
阅读全文
摘要://字符删除 #include<stdio.h> #include<String.h> int main(){ char str[20],str2[20]; char ch; int length,i,j = 0; scanf("%s\n",&str); scanf("%c",&ch); lengt
阅读全文
摘要://最大的算式 //对输入的N个数逆序排序,前K个数的积乘于剩余N-K个数的和 #include<stdio.h> #include<stdlib.h> #define MAXN 100 int comp(const void*a,const void*b)//用来做比较的函数。 { return
阅读全文
摘要://最大值与最小值 #include<stdio.h> #include<stdlib.h> #define MAXN 100 int comp(const void*a,const void*b)//用来做比较的函数。 { return *(int*)a - *(int*)b; } int mai
阅读全文
摘要://最大最小公倍数 // #include<stdio.h> int main(){ int n; scanf("%d",&n); //连续3个数 奇偶奇 互质 if(n<=2) printf("2"); else if(n==3) printf("6"); else if(n%2==1) prin
阅读全文
摘要://最小乘积(基本型) #include<stdio.h> #include<stdlib.h> #define MAXN 100 int comp_a2(const void*a,const void*b)//用来做比较的函数。 { return *(int*)a - *(int*)b; } in
阅读全文
摘要:#include<stdio.h> #include<string.h> int main(){ int a[5],i,max; char str[5][100]; for(i=0;i<5;i++){ scanf("%s",str[i]); a[i] = strlen(str[i]); } for(
阅读全文
摘要://比较字符串 #include<stdio.h> #include<string.h> #define MAXN 100 int main(){ char str1[MAXN],str2[MAXN]; int length; scanf("%s%s",str1,str2); length = st
阅读全文
摘要://阿尔法乘积 #include<stdio.h> int alpha(long long int x){ if(x<10) return x; else{ long n = 1; while(x){ if(x%10 != 0){ n *= x%10; x /= 10; } else x /= 10
阅读全文
摘要://摆动序列 #include<stdio.h> int k,num; int data[22],book[22]; void dfs(int t){ if(t>1){ if(t==2) num++; else{ int flag = 1; for(int i=t-1;i>=2;i--){ //条件
阅读全文
摘要://算法训练——暗恋 //思路:枚举 #include<stdio.h> #define MAX 200 int map[MAX][MAX]; int judge(int x,int y,int cur){ //判断以(x,y)为左上角、长度为cur,能否构成一个纯色的正方形 int color;
阅读全文
摘要:参考:https://www.cnblogs.com/schips/p/10658253.html 求最小公倍数的方法: 方法1:分解质因数法 方法2:公式法 求最大公约数的方法: 方法1:辗转相除法(欧几里德法) 方法2:穷举法(枚举法) 方法3:更相减损法 方法4:Stein算法 利用公式法 +
阅读全文
摘要://年号字串 #include<stdio.h> int main(){ int n; scanf("%d",&n); char a[] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','
阅读全文
摘要:引用#include<stdlib.h>头文件 qsort()括号里面有4个参数 第一个参数是将要排序的数组名array; 第二个参数是将要排序的数量n; 第三个参数是每个要排序的参数的大小xizeof(array[o]); 第四个参数是自己写的一个比较函数comp; 若排序的是int类型的数组 升
阅读全文
摘要:参考博客:https://www.cnblogs.com/LCCRNblog/p/5228648.html TCP报文格式: 重要字段: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认序号:Ack序号,占32位,只有ACK标志位为
阅读全文
摘要:IP地址使用规则: 网络号全为0的地址保留,不能作为标识网络使用; 主机号全为0的地址保留,作为表示网络地址; 网络号全为1,节点号全为0的地址表示子网掩码; 主机号全为1的地址为广播地址,如172.16.255.255,称为直接广播或定向广播,表示对172.16.0.0中的所有主机进行广播,这类广
阅读全文
摘要:数据报分片原因: 网络层的数据报需要借助于数据链路层来真正完成传输,但是数据链路层的MTU有限制,一般以太网的MTU是1500B。但是网络层的数据报大小可以不止MTU这么大,根据IP数据报的格式我们知道,总长度有16位,最大有2^16−1=65535B这么大,因此,必然牵涉到数据报的分片技术。 分片
阅读全文
摘要:CRC校验原理: 在k位信息码后再拼接r位的校验码,报文编码长度为n位,因此,这种编码又叫(n,k)码。 定理:对于一个给定的(n,k)码,可以证明,存在一个最高次幂为n=k+r的多项式G(x),存在且仅存在一个R次多项式G(x),使得 。 其中: m(x) :k次信息多项式, r(x) :r-1次
阅读全文
摘要:RIP: RIP协议是一种传统的路由协议,适合比较小型的网络,但是当前Internet网络的迅速发展和急剧膨胀使RIP协议无法适应今天的网络。 RIP是距离矢量路由协议 OSPF: OSPF协议则是在Internet网络急剧膨胀的时候制定出来的,它克服了RIP协议的许多缺陷。 OSPF是链路状态路由
阅读全文
摘要:协议: 为进行网络中的数据交换而建立的规则、标准或规定称为网络协议,简称协议。 协议是控制两个对等实体(或多个实体)进行通信的规则的集合。 网络协议的三要素: <1>语法:数据与控制信息的结构或格式 <2>语义:需要发出何种控制信息,完成何种动作以及做出何种响应。 <3>同步:事情实现顺序的详细说明
阅读全文
摘要:算法复杂性: 算法运行时所需要的计算机资源的量。 <1>时间复杂性,<2>空间复杂性 穷举法的基本思想: 对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试为止。 分治法的基本思想: 将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同;对这k个子问题分别求解
阅读全文
摘要://求解装载问题 #include<stdio.h> #define MAXN 20 int n,W; int maxw; int x[MAXN]; int minm = 32767; void disp(int n){ //当x[i]等于1时,说明选择该集装箱,输出 int i; printf("
阅读全文
摘要:用数组b[0...n-1]记录a[i](0<=i<=n-1)为结尾元素的最长递增子序列的长度; 序列a[]中的最长自增子序列的长度为 max(b[i])。 //求最长单调递增子序列 #include<stdio.h> #define MAXN 20 void disp(int a[],int b[]
阅读全文
摘要:动态规划 //求解最长公共子序列问题 #include<stdio.h> #include<string.h> #define N 30 int lcslength(char *a,char *b,int c[][N]){ //求c[m][n] 即最长公共子序列的长度 int m = strlen(
阅读全文
摘要:二路归并排序 //二路归并排序 //分治法 //自底向上的二路归并排序算法 #include<stdio.h> #include<malloc.h> void disp(int a[],int n){ int i; for(i=0;i<n;i++) printf("%d ",a[i]); print
阅读全文
摘要:递归 1 //求解N皇后问题 2 //递归法 3 #include<stdio.h> 4 #include<stdlib.h> 5 const int N = 20; 6 int q[N]; 7 void disp(int n){ 8 static int count = 0; 9 int i; 1
阅读全文
摘要:快速排序算法的性能取决于 划分的对称性。 快速排序 -- 选择划分基准 <1>随机选择一个元素作为划分基准。 <2>取子序列的第一个元素。 <3>用中位数的中位数方法寻找划分基准。 分治法 分治策略: <1>分解:将原序列 a[s...t] 分解成两个子序列 a[s...i-1] 和 a[i+1..
阅读全文
摘要:穷举法 问题描述: 问题求解:对于n个物品,容量为W的背包问题。 <1>先采用求幂集的方法求出所有的物品组合。 <2>对于每一种组合,计算组合中物品的总重量sumw,总价值sumv。 <3>对于每一种组合,如果sumw <= W ,说明该组合是一种解。比较所有解,将最佳方案保存在 maxsumw 和
阅读全文
摘要://穷举法 #include<stdio.h> #define Maxn 10 #define MaxSize 1000 typedef struct{ struct{ int a[Maxn]; int m; }data[MaxSize]; int top; }StackType; void ins
阅读全文
摘要:方法一 //求解最大连续子序列和问题 #include<stdio.h> long maxSubSum(int a[],int n){ int i,j,k; long maxSum=a[0],thisSum; for(i=0;i<n;i++){ for(j=i;j<n;j++){ thisSum=0
阅读全文