![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机基础
文章平均质量分 58
算法和数据结构等一些计算机的基础知识,也包括一些编程语言等的合集
Simon_Smith
这个作者很懒,什么都没留下…
展开
-
计算机基础之汇编语言学习笔记
主要记录了一些汇编语言学习的笔记内容,是在计算机组成原理这个基础知识上的又一次升级和突破原创 2024-06-30 22:24:23 · 296 阅读 · 0 评论 -
计算机基础-编程语言 JavaSE基础笔记 正则表达式
Java正则表达式常见应用:1.字符串匹配2.字符串分析3.文本替换4.Scanner定界符例题1:使用正则表达式匹配输入的字符串(例5.13)arg相应输入的内容如下abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}运行结果:源代码备忘录:TestRegex.javapackage regex;import java.util.regex.*;public class TestRegex { public.原创 2022-05-14 14:24:40 · 306 阅读 · 0 评论 -
计算机基础-编程语言 JavaSE基础笔记 Java常用类
Java常用类之Math类Java提供Math工具类(java.lang.Math)专用于数学运算,该类有很多静态方法,能完成指数运算、对数运算、平方根运算和三角运算等,还有两个静态常量:E(自然对数)和PI(圆周率)。Math类是final型,不能派生子类。另外,它的构造方法是private类型,因此该类也不能被实例化。Math类的方法较多,这里仅列出部分常用的,如表5.3所示。 方法 描述 abs() 返回绝...原创 2022-05-14 19:21:24 · 414 阅读 · 0 评论 -
计算机基础-编程语言 JavaSE基础笔记 Java网络编程(2)
UDP相关类UDP是基于数据报的传输协议,java.net.DatagramSocket类负责接收和发送UDP数据报,java.net.DatagramPacket表示UDP数据报。(1)DatagramSocket类每个DatagramSocket与一个数据报套接字(内含本地主机的IP和端口)绑定,每个DatagramSocket可以把UDP数据报发往任意一个远程DatagramSocket,也可接收来自任何远程DatagramSocket的数据报。在UDP数据报中包含了目的地址信息,Data原创 2022-05-15 14:42:06 · 424 阅读 · 0 评论 -
计算机基础-编程语言 JavaSE基础笔记 Java网络编程(1)
Socket编程相关类(1)Socket类 Socket类的对象表示一个套接字。客户端使用Socket类的构造方法创建套接字,创建的同时会自动向服务器方发起连接。 Socket类有如下一些构造方法。Socket(String host, int port) throws UnknownHostException, IOException:向服务器(域名host,端口号port)发起TCP连接,若成功,则创建Socket对象,否则抛出异常。Socket(InetAddress addres.原创 2022-05-15 12:47:19 · 382 阅读 · 0 评论 -
研究生复试机试背诵自用
二刷 P3371 【模板】单源最短路径(弱化版) Dijkstra模板背诵。二刷 P1048 [NOIP2005 普及组] 采药 动态规划背包01问题。二刷 NUST 15-T7 训练map+set+vector容器的使用。二刷 P3366 【模板】最小生成树 Kruskal模板 背诵。二刷 P3366 【模板】最小生成树 Prim算法模板背诵。二刷 KMP算法 next版本背诵专用 匹配所有位置。二刷 P1443 马的遍历 BFS广搜 经典背诵。二刷 P1123 取数游戏 dfs深搜经典背诵。原创 2024-03-26 09:26:14 · 212 阅读 · 0 评论 -
算法分析之n皇后摆放问题(OJ-P1220)
源代码部分: 分析:皇后摆放问题可以采取递归的思路进行分析,具体如下PS:皇后是按行顺序依次放置的,所以不会出现一行放两个的情况,所以判断条件也就不需要判断是否是同一行这个条件了。 也可以采取回溯的方法 即非递归的形式求解皇后问题第2章采用递归技术求解,这里采用回溯法求解。实际上,2.3.2小节的递归算法对应的就是回溯法的递归框架,这里讨论采用非递归框架求解皇后问题。...原创 2022-06-13 10:08:52 · 1025 阅读 · 0 评论 -
OJ算法分析题库(4)
源代码部分:代码部分:原创 2022-06-06 21:02:18 · 921 阅读 · 0 评论 -
算法分析之0/1背包问题---回溯法实现
【问题描述】有n个重量分别为{w1,w2,…,wn}的物品,它们的价值分别为{v1,v2,…,vn},给定一个容量为W的背包。 设计从这些物品中选取一部分物品放入该背包的方案,每个物品要么选中要么不选中,要求选中的物品不仅能够放到背包中,而且满足重量限制(装入背包中物品重量和恰好为W ),并能具有最大的价值。 【提示】该问题的解空间是一棵子集树! (1)对第i层上的某个分枝结点,对应的状态为dfs(i,tw,tv,op),其中tw表示装入背包中的物品总重量,tv表示背包中物品总价值,op记录一个解向量原创 2022-06-03 17:44:55 · 1816 阅读 · 0 评论 -
OJ基础题库(5)
源代码部分:#include<stdio.h>int main(){ int t,m; while(~scanf("%d%d",&t,&m)){ int a,b,value[1001]={},i; while(m--){ scanf("%d%d",&a,&b); int j; for(j=t-a;j>-1;j--) if(value[j]+b>value[j+a]) value[j......原创 2022-05-19 15:16:48 · 3531 阅读 · 0 评论 -
算法动态规划之杂交水果取名问题
这个问题需要借鉴到动态规划中非常典型的:最大公共子序列问题的算法【问题描述】两种水果杂交出一种新水果,现在给新水果取名,要求这个名字中包含了以前两种水果名字的字母,并且这个名字要尽量短。也就是说以前的一种水果名字arr1是新水果名字arr的子序列,另一种水果名字arr2也是新水果名字arr的子序列。设计一个算法求arr。例如:输入以下3组水果名称:apple peach ananas banana pear peach 输出的新水果名称如下:appleach ban...原创 2022-05-19 14:59:45 · 2196 阅读 · 0 评论 -
算法之动态规划 例题之矩阵连乘问题
动态规划自底向上分析图:这里需要注意:题目要求的仅仅是结合律 而没有要求交换律。所以判断是否可乘,并不需要单独去判断。在递归的过程中如果出现前面一个矩阵的j和下一个矩阵的i不相同,则说明不可乘。经过分析以后,我们通过自底向上的方式完成算法的设计即可。...原创 2022-05-04 21:55:43 · 1405 阅读 · 0 评论 -
OJ算法分析题库(3)
算法1:(贪心算法)#include<bits/stdc++.h>using namespace std;int main(){ int n;cin>>n;int a[n],b[n],ans=0; for(int i=0;i<n;i++) cin>>a[i]; for(int j=0;j<n;j++) cin>>b[j]; sort(a,a+n);sort(b,b+n); int lefta=0,leftb=0,right...原创 2022-04-23 20:29:49 · 1738 阅读 · 0 评论 -
OJ算法分析题库(2)
算法分析:算法大致的思路就是通过四个数组分别存储每次输入的数值内容。然后通过分组循环,四个数分两组,a和b一组进行一对多依次加法存到数组中,保证每个a组的数都和b组中的所有数进行过了加法运算。c和d也是一样的方式。两个数组ab和cd运算完毕以后,进行排序。排序完成以后接下来通过对ab数组的值进行依次循环,然后每次都会cd数组也进行循环判断,找到ab+cd=0的情况的个数。为了应对数值相同的情况,这里用到了upper_bound和lower_bound两个函数进行运算,具体原理读者可以自行分析....原创 2022-04-16 14:25:50 · 2776 阅读 · 0 评论 -
算法分析:锦标赛问题 分治算法
【问题描述】设有n=24个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他n-1个选手各赛一次;(2)每个选手一天只能参赛一次;(3)循环赛在n-1天内结束。请按此要求将比赛日程表设计成有n行和n-1列的一个表。在表中的第i行,第j列处填入第i个选手在第j天所遇到的选手。其中1≤i≤n,1≤j≤n-1。编写程序,输出k=4时的比赛日常表(矩阵)。[实验提示]我们可以按分治策略将所有的选手分为两半,则n个选手的比赛日程表可以通过n/2个选手的比赛.原创 2022-04-13 16:35:36 · 1541 阅读 · 1 评论 -
OJ基础题库(4)
#include<stdio.h>#include<iostream>#define N 1000using namespace std;int main(){ long long n,m,i,j; long long b[N]; while(cin>>n) { int k=0; cin>>m; b[1]=1;b[2]=2; for(i=1;i<=n;i++) { j=i; while(j%2=...原创 2022-04-12 09:35:37 · 1393 阅读 · 0 评论 -
算法分析之背包九讲(P1439)
算法采用动态分析的方式去分析:常规算法:#include<iostream>using namespace std;int main(){ int v,n; //v箱子容量 n物品数 while(cin>>v>>n){ int weight[n+1],value[n+1],i,r;weight[0]=value[0]=0; for(i=1;i<=n;i++) cin>>weight[i]>>va......原创 2022-04-12 09:14:33 · 399 阅读 · 0 评论 -
算法设计例题分析 食物链
算法分析:首先对于题目的要求 我们需要用一个数据结构去存储相应的捕食关系!可以考虑使用图进行存储 不过这里用一个动态数组构成的结构体进行关系存储每个结构体代表一个生物 其中存储了其前驱和后继 分别用于表示捕食和被捕食的关系之后每轮的循环中将相应的最长链长度存储到Max变量中 依次比较最后输出传入的变量b c 分别表示被捕食者和捕食者 那么就相应的存储a[b].out.push_back(c)同理对于c而言应该将b存入自己的食物列表 也就是in 即a[c].in...原创 2022-04-09 19:44:13 · 1727 阅读 · 0 评论 -
分治算法---矩阵乘法
[实验目的]掌握分治策略的基本思想以及用分治法解决问题的技巧,运用分治法解决矩阵乘法的复杂度过高的问题。【问题描述】设A和B是两个n*n阶矩阵,求它们的乘积矩阵C。(假设n=2k)。【提示】A和B是两个n*n阶矩阵,它们的乘积C=A*B也是一个n*n阶矩阵,用传统方法计算矩阵C中的元素的公式如下: 由公式(1)可以知道,每计算一个C[i][j],需要做n次乘法和n-1次加法。因此计算C的n*n个元素需要n3次乘法和n3-n2次加法,因此算法的时间复杂...原创 2022-04-06 20:46:24 · 8224 阅读 · 0 评论 -
OJ算法分析题库(1)
标准答案算法:#include <bits/stdc++.h>using namespace std;int m,n,k,ans[101][101],h[10001],x[10001],y[10001],a[101][101],maxx;int dx[4]={1,0,-1,0};int dy[4]={0,1,0,-1};void qsort(int l,int r){ if(l>r)return; int i=l,j=r,m=h[r],sw; ......原创 2022-04-06 20:43:24 · 1457 阅读 · 0 评论 -
OJ基础题库(3)
#include<iostream>using namespace std;int main(){ int n; while(cin>>n){ int i=1; int line; for(i=1;i>0;i++){ int s1=i*(i+1)/(2); int s2=(i+1)*(i+2)/(2); if(s1<n &...原创 2022-04-06 20:39:03 · 1234 阅读 · 0 评论 -
OJ基础题库(2)
网上的算法:#include<bits/stdc++.h>using namespace std;int main(){char a[201],b[201];int l,c[201],p=0;//初始化不能忘while(cin>>a>>b){l=max(strlen(a),strlen(b));for(int i=0;i<=l;i++){if(i&...原创 2022-04-06 20:36:04 · 2060 阅读 · 0 评论 -
OJ基础题库(1)
#include<iostream>using namespace std;int max_yueshu(int x,int y){int temp;while(y!=0){temp=x%y;x=y;y=temp;}return x;}int main(){int n,i;cin>>n;//输入对数int x,y,res...原创 2022-04-06 20:32:16 · 3360 阅读 · 1 评论 -
分治算法---求解逆序数问题
[实验目的]基本掌握分治算法的原理.掌握二路归并排序的算法及递归程序的设计.【问题描述】 给定一个整数数组A=(a0,a1,…,an-1)。若 i<j 且 ai>aj,则<ai, aj>就是一个逆序对。例如数组(3,1,4,5,2)中,含有4个逆序对。编写一个程序,采用分治法中的二路归并排序算法,递归地求解A中的逆序对的个数,即逆序数。【提示】采用分治法中的二路归并排序算法,对数组进行排序,在归并各个子序列时,统计逆序对的个数,如下图所示:参考代码为.原创 2022-04-06 20:25:32 · 6348 阅读 · 0 评论