自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

给我加个蛋再走

。总得找个东西打发时间

  • 博客(37)
  • 收藏
  • 关注

原创 RISCV指令集分析

RISCV指令集分析一、RV32I指令格式RV32I一共有6种基本指令格式,如下图所示其中S-type指令格式和B-type指令格式可以认为是同一种格式,因为两种格式都是用了立即数的12位,只不过S类型用的是0到11位而B类型用的是1到12位。同理U指令格式和J指令格式也可以认为是同一种指令格式,U类型用的是立即数的12到31位而J类型用的是1到20位二、各格式指令的介绍1、I类型指令addI rd rs1 immediate寄存器x[rd] = x[rs1] + immediate。该立

2020-09-08 10:48:04 10704 1

原创 GCC RISCV环境搭建

GCC RISCV环境搭建在搭建环境之前有两个注意点一定要遵循a、不要试着在windows下使用wsl搭建环境,直接使用ubantu虚拟机就行b、安装文件的路径一定不要包含中文名称1、这里使用的是Vmware,ubantu18-64位。安装riscv工具链需要clone几个G的文件,在开始搭建环境之前,强烈建议先解决好git clone速度过慢的问题。2、搭建环境前安装如下依赖sudo apt-get install autoconf automake autotools-dev curl l

2020-09-07 16:41:19 3537 2

原创 Ubantu虚拟机连接本地代理提升gitclone速度

Ubantu虚拟机连接本地代理提升gitclone速度​ 很多时候我们需要直接在ubantu虚拟机下做实验,之前提到过在windows下提升gitclone下载速度的方法,现在我们来看如何提升ubantu虚拟机的clone速度。这里使用的DaiLi为V2r…一、主机设置(Windwos)a、首先确保DaiLi的config.json配置文件中listen地址为0.0.0.0,表示任何主机都能访问该端口b、对DaiLi配置进行设置,允许来自局域网的连接c、cmd下通过ipconfig命令查看主

2020-09-07 09:17:53 1019

原创 HDU-3749(点的双连通)

题目链接:我是题解题思路:1、首先对于不连通的两个点用并查集预判2、对于父节点相同的点找出他们是否在同一点的双连通分量中,要注意的是:即使在同一双连通分量中若该双连通分量只有两个点那答案也将只是1,否则才是2或者更多。3、对于父节点相同但是不处于同一点双连通分量的点答案只有1注意:这题数组越界会超时而不是re!!!#include <iostream>#include ...

2019-05-15 21:06:02 371

原创 bomb实验(报告)

一、实验前的做:1、在终端输入指令:objdump -d bomb > 2.txt :生成反汇编代码到文件-2.txt-中。2、输入指令:gedit 2.txt :代开-2.txt-文件。如下图所示。3、全选复制后,在本机输入cmd指令打开dos窗口后,输入write指令打开写字板后赋值代码。4、查找phase_1,开始拆弹。实验过程:1、炸弹一的汇编代码:拆弹流程...

2019-04-21 09:31:05 1447

原创 随机生成一棵树

并查集的简单介绍1、初始情况四个点的父节点都为本身:FA[1]=1,FA[2]=2…2、当生成的随机数为1,2时找到1,2的父节点分别为FA[1]=1,FA[2]=2,父节点不同进行连接。3、生成的随机数为1,3,连接1,3这条边。4、生成的随机数为2,3,不进行连边。5、生成的随机数为2,4,连边CODE:#include <bits/stdc++.h>usin...

2019-04-14 20:56:14 3111 5

原创 树的最大连通分支问题(算法设计与分析-王晓东)

问题描述:给定一棵树 T,树中每个顶点 u 都有一个权 w(u),权可以是负数。现在要找到树 T 的一个连通子图使该子图的权之和最大。对于给定的树 T,编程计算树 T 的最大连通分支。数据输入:第 1 行有 1 个正整数 n,表示树 T 有 n 个顶点。树 T 的顶点编号为 1,…,n。第 2 行有 n 个整数,表示 n 个顶点的权值。接下来的 n-1 行中,每 行有表示树 T 的一条边的...

2019-04-14 19:35:44 3793 6

原创 gcc环境查看汇编代码,二进制代码。

首先熟悉ATT的几条指令-cd+文件夹名:打开指定文件夹:-ls:列出当前文件夹中的所有文件-gedit:进行文件的修改编写-cat+文件名:对文件内容进行查看1、输入指令:gedit code.c创建code.c文件并对他进行编写,源代码如下:int accum=0;int sum(int x,int y){ int t=x+y; accum+...

2019-04-10 08:45:11 2657

原创 汽车加油行使问题DP(算法设计与分析-王晓东)

题目描述Description给定一个N*N 的方形网格,设其左上角为起点◎,坐标为(1,1),X 轴向右为正,Y轴向下为正,每个方格边长为1,如图所示。一辆汽车从起点◎出发驶向右下角终点▲,其坐标为(N,N)。在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油。汽车在行驶过程中应遵守如下规则:(1)汽车只能沿网格边行驶,装满油后能行驶K 条网格边。出发时汽车已装满油,在起...

2019-04-08 20:27:07 2365

原创 perflab1

一、首先对于函数1:naive_rotate(幼稚的翻转!?)void naive_rotate(int dim, pixel *src, pixel *dst) { int i, j; for (i = 0; i < dim; i++) for (j = 0; j < dim; j++) dst[RIDX(dim-1-j, i, dim)] = ...

2019-04-07 11:49:45 1610 1

原创 POJ1976

题目链接如下:http://poj.org/problem?id=1976题意描述:一辆火车由N节车厢组成,每节车厢中所装的人数给定。现有三节迷你火车头,每节火车头所能拉动的最大车厢节数给定为m,问这三节迷你车厢所能拉动的最多人数:解题思路:首先定义一个d[]数组,d[i]代表以第i节车厢结尾的m节车厢人数。ans[i][j]代表使用j个迷你火车头,只考虑前i节车厢所能拉动的最大人数。...

2019-04-03 12:13:55 400

原创 POJ3211(01背包)

题目链接如下:http://poj.org/problem?id=3211题目大意:给你N件衣服,衣服一共可能有M种颜色,接下来的N行包含了每件衣服的颜色及其漂洗所要花费的时间。两个人一起洗衣服,同时只能洗同一种颜色的衣服,这种颜色的衣服洗完之后才能紧接着洗下一种颜色的衣服,问洗完所有的衣服所要花费的最少时间。解题思路:对于每种颜色的衣服,可以看成一个01背包问题,背包的容量为漂洗这种衣服...

2019-04-02 21:52:25 247

原创 矩阵快速幂(斐波拉契数列)

首先附上题目链接:http://poj.org/problem?id=3070有关矩阵快速幂的基础知识可以参考这篇博客#include <iostream>#include <string.h> #define maxn 105#define mod 1234567#define LL long longusing namespace std;//定义...

2019-03-18 19:38:22 240

原创 棋盘覆盖问题

http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=2000题目描述如下:Description 在一个2k x 2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重...

2019-01-28 22:56:49 241

原创 高精度除法(精确到小数点后N位)

这种类型的高精度除法颇为简单,直接贴上代码//写在前面//对于精确到小数点后任意位数的高精度除法//只要简单的模拟除法过程就可//在直接用除法算出小数点前的整数后//改变被除数 a=(a%b)*10 a为被除数,b为除数 #include &lt;iostream&gt;using namespace std;int main(){ int num1,num2;cin&gt...

2019-01-21 20:50:13 4009 2

原创 判断两条线段是否相交-UVA-191(跨立实验,快速判断实验)

有关判断两条直线相交的详细介绍这里不做说明,仅给出代码模板,其中以UVA-191作为模板测试样例,题目链接如下https://vjudge.net/problem/UVA-191//写在前面//判断两条线段是否相交需要进行两个实验,分别是://快速判断实验,跨立实验两个实验缺一不可//跨立实验能排除两条直线在同一条直线上但没有公共点这种特殊情况//跨立实验利用叉积来进行判断,叉积...

2018-12-22 21:01:37 579

原创 判断点是否在多边形内部(射线法)

有关射线法的详细介绍在这里给出一个讲的很好的博客链接:https://blog.csdn.net/jq_develop/article/details/44981127接着给出代码模板,以UVA-634作为模板测试,题目链接如下:https://vjudge.net/problem/UVA-634//写在前面//判断点是否在多边形内部最好的方法就是射线法,在实际//应用中有几...

2018-12-22 19:50:27 1063

原创 任意多边形的面积计算(叉积)

有关多边形面积计算的详细理论这里不做介绍,仅给出代码模板,并以HDU-2036作为样例https://vjudge.net/problem/HDU-2036//写在前面//求任意多边形的面积可以将多边形划分为n个三角形//然后利用叉积公式求每个三角形的面积并将所有三角形面积累加起来即可//有三角形的面积叉积计算公式:已知三角形的三个顶点//(x1,y1),(x2,y2),(x3,...

2018-12-21 19:42:00 1179

原创 最长公共子序列

poj-1458作为样例。题目链接如下https://vjudge.net/problem/POJ-1458//写在前面//最长公共子序列:即给定两个字符序列要你找到两者中最长的公共子序列//状态转移方程为:{0 i=0或j=0; // dp[i][j]={dp[i-1][j-1]+1 a[i]=b[j];// ...

2018-12-21 09:22:11 184

原创 最长上升子序列(路径打印)

//写在前面://给定一数字序列,找到其最长的上升子序列//状态转移方程为: if(arrary[j]>arrary[i])dp[j]=max(dp[j],dp[i]+1);//其中arrary[i]为数字序列中下标为i的值 #include <iostream>#include <string.h>#define maxn 1005using ...

2018-12-20 23:26:34 1105

原创 多重背包问题

HDU1059链接https://vjudge.net/problem/HDU-1059//写在前面//多重背包问题:有N种物品,第i种物品的体积为vc[i],价值为va[i],数量为c[i]//有一容量为C的背包,问怎样才能使背包中的物品价值最大//利用二进制优化将问题转化为01背包问题 //具体给出HDU上1059题作为样例 #include <iostream&gt...

2018-12-20 17:36:09 181

原创 完全背包问题(空间优化,打印路径)

​//HDU1114//写在前面:这里给出HDU1114题作为样例//完全背包问题:有N种物品,每i种物品的体积为vc[i],价值为w[i],数量不限//有一容量为C的背包,问如何装能使背包的体积最大//当使用二维数组时的状态转移方程为:dp[i][v]=max(dp[i-1][v],dp[i][v-vc[i]]+w[i])//空间优化后的状态转移方程变为:dp[v]=max(...

2018-12-20 11:41:49 1039 2

原创 01背包问题(空间优化,路径打印)

//写在前面//01问题:有N个物品,每个物品都有其对应的体积和价值//有一个容量为V的背包问怎样放能使背包中物品的价值最大//状态转移方程为:f[i][v]=max(f[i-1][v],f[i-1][v-a[i]+b[i]) //当使用空间优化是状态转移方程为:f[v]=max(f[v],f[v-a[i]]+b[i]) #include <iostream>#in...

2018-12-20 08:46:49 678

原创 欧拉函数的三种求法

1、求给定的某个数的欧拉函数://写在前面//有公式phi(n)=n*(1-(1/p1))(1-(1/p2)).....//其中p1,p2,..为n的质因数 #include &lt;iostream&gt;using namespace std;int euler(int n){ int res=n,mid=n; for(int i=2;i*i&lt;=mid;i++) ...

2018-12-16 17:27:24 3949 1

原创 扩展欧几里得算法求逆元

//写在前面//当有ax=1(mod n)---1 时,x称做a的乘法逆元//一个数有逆元的充分必要条件是gcd(a,n)=1// 1式等价于 ax+ny=1 ---2//2式可用扩展欧几里得算法求出x0的值//其中最小逆元 x=(x0%n+n)%n //求出逆元后 (a/b)%n=(a*inv(a))%n 其中a*inv(a)=1(mod n) #include &lt;iost...

2018-12-16 15:44:36 1451

原创 快速幂取模算法模板-x^y%mode=?

思路非常简洁的一个算法,这里只给出算法模板,建议读者阅读前详细了解快速幂算法。//写在前面//很简单的一个算法 #include &lt;iostream&gt;#define LL long longusing namespace std;LL Fast_power(LL x,LL y,LL mode){ LL sum=1; while(y) { if(y&amp;1...

2018-12-12 19:27:24 476

原创 扩展欧几里得求(ax+by=m) 算法模板

这里只给出算法的模板,建议读者阅读代码前先详细了解扩展欧几里得算法和欧几里得算法//写在前面 //要求: ax+by=m 有解 必须有 m%(gcd(a,b))=0;//当符合条件时有: a1=a/gcd(a,b) b1=b/gcd(a,b) m=m/gcd(a,b);//有方程 a1*x+b1*y=m1 有解 此时有gcd(a1,b1)=1;//有方程 a1*x1+b1*y1=1;...

2018-12-11 21:17:42 820 2

原创 二叉树的创建及三种方式的遍历-C++实现

   建议读者在阅读代码前先详细了解二叉树的三种遍历方式(前序,中序,后序),下面直接给出代码。#include &lt;iostream&gt;using namespace std;struct node//定义一个结构体来作为节点 { char ch;//节点中的数据 node *left;//左儿子 node *right;//右儿子 };node *root;/...

2018-08-09 00:07:06 512

原创 邻接链表实现图的建立-C++

  今天自学图的邻接链表建立,网上看了一些博客,一个基础内容竟然被写的非常诡异。关于邻接链表的理论知识这里就不在阐述了。下面给出非常通俗易懂的一个建立无向图的邻接链表的代码。有时间将有向图的也补上。#include &lt;iostream&gt;#include &lt;vector&gt;#define maxn 50 //最多五十个点 using namespace std;...

2018-08-07 00:35:46 2269

原创 压栈实现四则运算--C++实现

问题描述:输入一串由符号和数字组成的四则运算,输出答案。注:数字仅有0-9组成,符号由‘+’,‘-’,‘*’,‘/’;组成。样例输入:9+8*4+5*6+3+4/2-1样例输出:75解题思路:今天课上老师介绍的压栈,弹栈法非常适合于解这种类型的题,不仅四则运算,命题公式的运算或括弧的删除等都可以用此方法,而且也不难理解。通过这道例题的解答,读者应该能基本掌握了。代码有详细注...

2018-08-01 20:42:40 1693 1

原创 任意集合的子集生成--C++实现

题目描述:任意给定一个集合,集合中不含相同元素,要求打印出该集合所有的子集。输入描述:第一行输入该集合的元素个数。第二行输入该集合的所有元素。输出描述:按照字典序从小到大输出该集合的所有子集。样例输入:51 6 5 3 2样例输出:11 21 2 31 2 3 51 2 3 5 61 2 3 61 2 51 2 5 61 2 61 31 3 ...

2018-07-24 11:18:42 1724

原创 生成可重集的排列-C++递归实现

题目描述:输入一个数组p,按照字典序从小到大输出p中元素所有的排列样例输入:32 1 2样例输出1 2 22 1 22 2 1#include &lt;iostream&gt;#include &lt;string.h&gt;#include &lt;algorithm&gt;using namespace std;void print_permuta...

2018-07-22 21:28:07 573

原创 Ova-10010-C++实现

  Where's Waldorf?  Given a m by n grid of letters, and a list of words, find the location in the grid at which the word can be found. A word matches a straight, uninterrupted line of letters in the...

2018-07-20 11:03:07 317

原创 C++实现—层次遍历

题目描述:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个节点的值。每个节点都按照从根节点到它的移动序列给出(L表示左,R表示右)。在输入中,每个节点的左括号和有括号之间没有空格,相邻节点之间用一个空格隔开。每棵树的输入用一对空括号()结束(这对括号本身不代表一个节点)。注意,如果从根到某个叶节点的路径上有的节点没有在输入中给出,或者给出了超过一次,应当输出-1.节点个数不超过25...

2018-07-18 22:46:30 3465

原创 移动小球-C++-链表实现

题目描述:你有一些小球,从左到右依次编号为1,2,3,…,n,你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边,B X Y表示把小球X移动到小球Y右边。指令保证合法,即X不#include &lt;iostream&gt;using namespace std;struct ball{ int number; struct ball *next;};bal...

2018-07-18 00:09:38 1362

原创 C++实现单向链表的“建立”,“插入”,“删除”,“输出”

直接上代码#include &lt;iostream&gt;using namespace std;struct data { int number; data *next;};data *head=NULL; //定义一个全局变量的头指针 void create() //链表创造函数 { data *p;data *s;int num; cout&l...

2018-07-17 20:29:15 832

原创 C++实现嵌套矩阵

题目描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a&lt;c,b&lt;d或者 b&lt;c,a&lt;d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排 成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。输入第一行是一个正正数N(0&lt;N&lt;1...

2018-07-10 21:42:15 727

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除