自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(222)
  • 资源 (1)
  • 收藏
  • 关注

原创 切换lab

贮藏修改:如果您暂时不想提交这些修改,但又不想丢失它们,可以使用贮藏命令将其保存起来。在切换分支之前,您需要提交或贮藏这些修改。命令后,Git会将您的本地修改贮藏起来,并将工作目录和索引状态还原到贮藏之前的状态。完成上述步骤后,您的贮藏的修改将被恢复到工作目录中,您可以继续进行其他操作。这将应用最近的一次贮藏,将修改重新应用到您的工作目录和索引中。请注意,根据您的情况,您可能还需要处理。如果您希望在应用贮藏后将其从贮藏列表中删除,可以使用。查看贮藏列表,并选择特定的贮藏进行应用。恢复贮藏的修改可以使用。

2023-06-01 21:07:14 610

原创 配置MIT6.S081环境

注意必须使用ubuntu20.04版本,因为后面安装RISC-V交叉编译工具时,某个文件只有ubuntu20.04才有镜像源。如果第一次使用则需要在终端添加(具体的不记得了,在主目录和xv6目录下都添加下面代码则没错)在xv6目录下打开两个窗口后,用vim打开对应的文件,则可以进行调试。需要开启两个窗口,都是在xv6源码目录下。为了便于调试,则安装vim并配置vim。在主目录下安装qemu。

2023-05-27 17:41:15 1012

原创 快捷方式1

Version=1.0Type=ApplicationName=GolandExec=/home/<用户名>/GoLand/bin/goland.shIcon=/home/<用户名>/GoLand/bin/goland.svgTerminal=falseStartupNotify=trueCategories=Development;

2023-05-14 22:30:54 205

原创 Go环境配置

【代码】Go环境配置。

2023-05-14 21:11:44 915

原创 二、线性表_顺序存储(动态)

各种操作动态分配空间初始化在 i 插入 e O(n)增加动态数组的长度获取i位置的值查询e所处的位置完整程序动态分配空间#define InitSize 100typedef struct{ int *date; int MaxSize,length;}SqList; 初始化void InitList(SqList &L){ //L.date(int *)malloc(sizeof(int)*InitSize); 分配空间 L.date=new int[InitSize];

2022-02-11 18:31:41 178

原创 二、线性表_顺序存储(静态)

各种操作静态分配空间初始化在 i 插入 e O(n)删除 i 节点获取i位置的值查询e所处的位置完整程序静态分配空间#define MaxSize 50typedef struct{ int date[Maxize]; int length;}SqList;初始化void InitList(SqList &L){ for(int i=0;i<MaxSize;i++) L.date[i]=0; L.length=0;}在 i 插入 e O(n)i节点及后面节

2022-02-11 18:23:06 136

原创 离散化(模板)

所谓离散化是指,原本一个很大的数据范围,映射后在一个很小的区间802. 区间和思路1.首先将所有数的下标存在一个数组 alls 中2.把需要查询区间范围也存入 alls ,然后去重排序3.根据插入的数据,把该值映射进一个数组4.利用前缀和,求区间的范围简言之,就是把所有需要用到的数组下标存起来,把下标和值映射进一个数组。相比于传统写法就节省了很多空间源码#include<bits/stdc++.h>using namespace std;typedef pair.

2022-01-12 18:21:42 249

原创 区间合并(模板)

所谓区间合并就是把有交集的区间范围合并成一个区间803. 区间合并思路:由这个题来介绍一下区间合并的具体实现首先看题目,题目的意思求合并之后,有几个不相交的区间1.所以可以将区间按左区间从小到大排序2.合并:第二个区间的起点在第一个区间的范围里,则更新区间的右端点(取两个区间的最大值)源码#include<bits/stdc++.h>using namespace std;const int N=100010;typedef pair<int,int&gt.

2022-01-12 17:30:38 287

原创 蓝桥杯STL

c++基础 c=max(a,b); c=min(a,b); //交换变量值 swap(a,b) //绝对值 m=abs(m); //查找 lower_bound(first,last,value);//查找有序数组第一个小于等于value的值 upper_bound(first,last,value);//查找有序数组第一个大于等于value的值 //引用 取别名就是小名 int a=10; int &b=a; //对b的操作也就是对a的操作,a,

2022-01-04 19:50:35 934

原创 数论(模板)-质数

1.判断质数//(1)试除法 int is_prime(int n){ if(n<2) return 0; for(int i=2;i<n;i++) if(n%i==0) return 0; return 1;}//降低复杂度/*d|n (n/d)|nd<=(n/d)d^2<=nd<=sqrt(n)*/ int is_prime(int n){ if(n<2) return 0; for(int i=2;i<=n/i;i+

2021-12-24 15:40:11 315

原创 数论-约数模板

求约数vector<int> get_divisors(int n){ vector<int> res; for(int i=1;i<=n/i;i++){ if(n%i==0){ res.push_back(i); if(i!=n/i) res.push_back(n/i); } } sort(res.begin(),res.end()); return res;} .2.约数个数//(a1+1)*(a2+1) 表示可以取0-d1个数

2021-12-23 18:46:14 715

原创 一维前缀和模板

题目链接:795. 前缀和核心计算公式 s[i]-s[j-1] 计算j-i 的区间和源码#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int n,m;int a[N],s[N];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=.

2021-07-14 13:15:48 142

原创 位运算模板

原题链接:801. 二进制中1的个数思路x: 101000010~x: 010111101~x+1: 010111110x&(-x): 000000010由上可知:lowbit(x)的作用为取出最低位的1 之后只需要减去最低位继续计算即可源码#include<bits/stdc++.h>using namespace std;int lowbit(int x){ //求最低位1的位置 即可以统计1的个数 return (x.

2021-07-14 13:10:42 127

原创 800. 数组元素的目标和

原题链接:800. 数组元素的目标和思路运用双指针i,j分别标记a数组首位和b数组末位依次遍历判断是否存在相等的情况源码#include<bits/stdc++.h>using namespace std;int n,m,x;const int N=100010;int a[N],b[N];int main(){ cin>>n>>m>>x; for(int i=0;i<n;i++) cin>>a[.

2021-07-14 13:08:13 72

原创 双指针模板

原题链接:最长连续不重复子序列思路:运用双指针: i,j首先将数存入一个数组a[]中然后依次遍历:i++(不出现重复的数时) 当出现重复数时 j指针前移求最长区间,只需要:求[i,j]区间的长度源码#include<bits/stdc++.h>using namespace std;const int N=100010;int a[N],q[N]; int n; int main(){ cin>>n; for(int i=0;i&.

2021-07-14 12:58:36 158

原创 Mysql使用过程

启动Mysql服务器1.以管理员身份运行cmd2.找到安装MySQL下的bin文件路径例:cd D:\my sql\mysql-8.0.25-winx64\bin (自己安装的路径)3. 启动MySQLnet start mysql进入MySQL交互操作界面mysql -u root -p之后输入密码,便进入了。创建和使用数据库create database study; (注意加分号)use study;...

2021-06-19 18:48:01 88

原创 迷宫(蓝桥杯)

思路创建一个结构体,用来存坐标,步数,所走路字典序。创建数组存每步的走法并对应最小的字典序。源码(不知道错哪里)#include<bits/stdc++.h>using namespace std;struct pos{ int x,y,step; string s;};int n,m;int sx=1,sy=1,fx=30,fy=50;int dx[]={1,0,0,-1};int dy[]={0,-1,1,0};char dir[]={'D','L','R',.

2021-04-12 18:49:32 259

原创 P1825 [USACO11OPEN]Corn Maze S

链接:P1825 [USACO11OPEN]Corn Maze S思路1.输入地图,寻找起始点2. 起始点入队,扩展3.判断是否找到终点4.判断是否进入穿越点(函数) 源码#include<bits/stdc++.h>using namespace std;const int maxn=350;struct pos{ int x,y,d;};queue<pos> Q;char mp[maxn][maxn];int vis[maxn][maxn],n

2021-04-12 15:11:48 276

原创 P1135 奇怪的电梯

DFS#include<bits/stdc++.h>using namespace std;int n,a,b;int k[305],vis[305];int minn=0x7fff;void dfs(int x,int step){ if(step>minn) return ;//剪枝 if(x==b){ //如果找到,则更新最小值 minn=min(step,minn); return ; } for(int i=-1;i<=1;i+=2.

2021-04-11 09:09:21 129

原创 P1824 进击的奶牛

思路核心就是二分+判断+贪心思想源码#include<bits/stdc++.h>#define maxn 1000010#define INF 1e9using namespace std;int a[maxn],n,c;bool p(int d){ int k=0,last=-INF; for(int i=1;i<=n;i++){ if(a[i]-last>=d) last=a[i],k++; } return k>=c;}int.

2021-04-08 17:30:20 201

原创 P1873 砍树

思路就跟二分差不多,只是多了一个函数判断,是否满足题目的木材数。源码#include<bits/stdc++.h>#define maxn 1000010using namespace std;long long a[maxn],n,m;bool p(int h){//判断当前高度 long long tot=0; for(int i=1;i<=n;i++){ if(a[i]>h) tot+=a[i]-h; } return tot>=.

2021-04-08 17:13:38 66

原创 P1102 A-B 数对

思路排序,然后根据A=B+C 找到A的起始下标和终止下标,就能求出数对的个数//upper_bound(begin,end,val)寻找val元素的最后一个位置(也就是下一个元素的坐标) //lower_bound(begin,end,val)寻找val元素的第一个位置(从0开始)源码#include<bits/stdc++.h>using namespace std;int n,c;long long a[200005];int main(){ cin>&g.

2021-04-08 16:40:57 96

原创 二分算法(模板)

P2249 【深基13.例1】查找思想就是用二分算法,将数组分为两部部分,每次折半查找。int find(int x){ int l=1,r=n; while(l<=r){ int mid=(l+r)/2; if(a[mid]==x) return mid; else if(a[mid]>x) r=mid-1; else l=mid+1; } return -1;}但是这个算法有缺陷,如果数组里面有重复出现的数,则会直接跳出,而不会找最小数组的下标。改进

2021-04-08 16:09:09 230

原创 P1605 迷宫

思路迷宫问题:注意事项:特别要注意边界(如果从0开始,则往四周走容易越界)错误示范:#include<bits/stdc++.h>using namespace std;//迷宫问题:注意事项:特别要注意边界(如果从0开始,则往四周走容易越界) int n,m,t;int sx,sy,fx,fy;int zx,zy;int dx[]={0,0,-1,1};int dy[]={-1,1,0,0};int mp[10][10],vis[10][10];int an.

2021-04-06 17:22:39 91

原创 等差数列(最大公约数)

思路a a+d a+2d a+3d a+4d a+5d a+6d则只要求最大公约数 d源码#include<bits/stdc++.h>using namespace std;//a a+d a+2d a+3d a+4d a+5d a+6d//则只要求最大公约数 d int gcd(int a,int b){ if(b==0) return a; else { return gcd(b,a%b); }}const int N=100010;int .

2021-04-06 16:21:34 194

原创 后缀表达式

思路思路: 如果全是加号,答案就是所有数字直接相加。 如果存在减号: 如果全是正数,那么至少有一个被减去,所以把最小的那个减去即可。 如果有正有负,那么所有正数匹配正号,所有负数匹配负号,因此将它们的绝对值直接相加 (...+....-(+...+...)) 如果全是负数,那么除了维持一个最大的负数(因为负数越大它的绝对值越小)为负数之后外,其他的全部翻正。(...+...-(...+...-...+))源码#include<bits/stdc++.h>/*思路.

2021-04-05 20:42:03 289

原创 1239. 乘积最大

链接:乘积最大# 整体思路该题的题解是整理了一下 y总视频里面讲解思路,希望对看完视频还不大理解的同学有点帮助首先我们知道 如果 k == n ,那么就证明所有的数字是全部都选, 如果 k < n , 那么就要思考怎样去选择了:1.k 如果是偶数的话,选出来的结果一定是非负数 , 原因如下: (1) # 负数的个数是偶数个的话,负负得正,那么一定是非负数 (2) # 负数的个数如果是奇数个的话,那么我们就只选偶

2021-04-05 19:34:25 121

原创 常见的日期计算问题(模板)

1.判断日期的合法性int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //建立月份数组 // 1.判断日期合法性 //1111 22 11bool check(int data){ int year=data/10000; int month=data%10000/100; int day=data%100; //判断月份 if(month<=0||month>=13) return false; //判断天,特判

2021-04-05 18:40:46 1087 5

原创 P1135 奇怪的电梯

思路注意判断每次上下移动是否符合要求。源码#include<bits/stdc++.h>using namespace std;int n,a,b;int k[205],vis[205];int ans=0x7ffffff;void dfs(int now,int step){ if(now==b){ ans=min(step,ans); return ; } if(step>ans){ return ; } if(now+k[now]<.

2021-03-30 15:23:36 117

原创 四阶数独

思路 int row=(x-1)/4+1; //设置行 1 2 3 4为第一行 先让x-1 可以确保 设置为 1 int col=(x-1)%4+1; // 设置列 也同理 int block=(row-1)/2*2+(col-1)/2+1; //设置每块 为啥row要*2 因为每两行有两块,则需要扩大两倍 源码#include<bits/stdc++.h>using namespace std;#define size 5int a[size*s.

2021-03-29 18:35:41 1808

原创 P1010 [NOIP1998 普及组] 幂次方(递归)

思路源码#include<bits/stdc++.h>using namespace std;//2 10 进入 do while() 首先判断 x&i为假 执行一次++i x右移位 i=1 x=1 //继续进入 if() 为真 i==1 s="2"+s 退出while 返回 s//do while(++i,x>>=1) 当while里面有一个为0(假),则退出while string run(int x,int i=0,str.

2021-03-24 20:34:40 185

原创 P1259 黑白棋子的移动(分治)

思路注意题目中的4个黑棋和4个白棋的情况。这是递归结束的标志源码#include<bits/stdc++.h>using namespace std;//int n;char a[200];void prt(char a[]){for(int i=0;i<=2*n-1+2;i++)cout<<a[i];cout<<endl;return ; }void sw(char a[],int x ,int y);void f(int m){.

2021-03-23 20:18:01 220

原创 P3612 [USACO17JAN]Secret Cow Code S

思路//当 N为原始的下一位// cow wco//发现把最后一位提前以后,两边的不变。//若要寻找大于初始的一半,则只需要减去前面的一半//但题目又把最后一个字符提前 则寻找减去 len+1//还有一点 若n-len-1等于0的话,则说明是原来的最后一位源码#include<bits/stdc++.h>using namespace std;int main(){ char a[105],ch; long long n,num=0; while(scanf("%.

2021-03-23 16:58:55 105

原创 P1044 [NOIP2003 普及组] 栈(卡特兰数)

卡特兰数什么是卡特兰数思路//初始化:当进栈的个数为0,1 时 方法为1;//n个数 当x为最后一个出栈 前面有f[x-1]种方法 后面有f[n-x]种//方案数:f[x-1]*f[n-x]//每个数都可能最后一个出去。//所以方案数为每种情况的和。源码#include<bits/stdc++.h>using namespace std;//初始化:当进栈的个数为0,1 时 方法为1;//n个数 当x为最后一个出栈 前面有f[x-1]种方法 后面有f[n-x]种.

2021-03-21 18:42:45 185

原创 P1002 [NOIP2002 普及组] 过河卒(动态规划)

思路有递推可以知道。到点(x,y)的方法等于到点(x-1,y)+(x,y-1)的方法和。则可以写出ans[i][j]=max(ans[i][j],ans[i-1][j]+ans[i][j-1]);由马的点可以知道,有9个点不能走,所以要标记一下。最后一点如果马的坐标很小的话,马可以走的点可能为负数,则可以把棋盘+2源码#include<bits/stdc++.h>using namespace std;const int dx[]={0,-1,-2,-2,-1,1,2,.

2021-03-21 18:11:06 530

原创 P2036 [COCI2008-2009#2] PERKET

思路选择调料,然后刷新最小值。注意当酸为1时,苦为0时,可以不选。减少时间复杂度。源码#include<bits/stdc++.h>using namespace std;int a[11],b[11],ans=999999;int n; void dfs(int cnt,int x,int y){ if(cnt>n){ //终止条件,调料选完 if(x==1&&y==0) return ; //可以不选 ans=min(ans.

2021-03-19 18:27:52 447

原创 P1149 [NOIP2008 提高组] 火柴棒等式

思路用数组存每个数的火柴数,然后再计算。要注意数的取值范围。源码#include<bits/stdc++.h>using namespace std;int a[10]={6,2,5,5,4,5,6,3,7,6};int n;int ans;int fun(int n){ int num=0; while(n/10!=0){ //若不这样写,初始为0,则不会计算 num+=a[n%10]; n=n/10; } num+=a[n]; return.

2021-03-18 21:11:05 248

原创 P3654 First Step (ファーストステップ)

思路每行k个或每列k个注意特例k==1时 每个计算了两次源码#include<bits/stdc++.h>using namespace std;char a[1005][1005];int r,c,k;int ans;void dfsr(int x,int y,int r){ if(r==k){ ans++; return ; } if(a[x][y+1]=='.') dfsr(x,y+1,r+1); }void dfsu(int x,int .

2021-03-18 20:34:41 77

原创 next_permutation的用法

定义next_permutation(start,end)表示在[ start,end)内存的数组中产生严格的下一个字典序排序例题P1706 全排列问题#include<bits/stdc++.h>using namespace std;typedef long long LL;int a[10];int main(){ long long A,B,C,x,y,z,cnt=0; cin>>A>>B>>C; for(int i=1;i&

2021-03-18 19:31:54 487

原创 P2089 烤鸡

思路创建两个来保存数据。源码#include<bits/stdc++.h>using namespace std;int n;int a[11];int ans1,ans2[100000][11]; //ans1方案数,ans2[][]用来存每种方案//用dfs来搜索 void dfs(int cnt,int k){ if(cnt>10){ if(k==n){ //终止条件 ans1++; for(int i=1;i<=10;i++){ .

2021-03-17 20:13:07 91

银行管理管理系统.zip

基于java实现的银行管理系统,运用frame界面实现多种功能

2021-07-12

空空如也

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

TA关注的人

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