自定义博客皮肤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)
  • 收藏
  • 关注

原创 后序遍历解决树的路径问题

2021-09-20 15:12:17 271 1

原创 关于在递归中删除链表结点不会导致链表断链的理解

        题目来自王道书:设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。        这道题在开始看的时候是觉得很简单的,判断是否等于x,然后在L->next进行递归就是了,但是当我看到答案的时候就很懵了(答案如下):void Del_x_3(Linklist &L,ElemType x){ LNode *p; if(L==NULL) return; if(L->dat

2021-09-11 16:55:19 3329 10

转载 计算机操作系统学习笔记3(系统调用)

回顾:在前面学的用户接口时,我们学习了两种,一是允许用户直接使用的命令接口,二是允许用户通过程序间接使用的程序接口,而程序接口就是由一组程序调用组成的“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务问题:为什么需要“系统调用”功能?在现实生活中,在打印店打印东西,你按下了打印按钮,在你的东西打印到了一半的时候,另外的一个同学页按下了打印按钮,但是最后你们打印的东西没有混在一起,都是按照顺序打印

2021-07-13 23:18:23 249

原创 第一章习题讲解(2020版操作系统)

回顾:在前面学的用户接口时,我们学习了两种,一是允许用户直接使用的命令接口,二是允许用户通过程序间接使用的程序接口,而程序接口就是由一组程序调用组成的“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务问题:为什么需要“系统调用”功能?在现实生活中,在打印店打印东西,你按下了打印按钮,在你的东西打印到了一半的时候,另外的一个同学页按下了打印按钮,但是最后你们打印的东西没有混在一起,都是按照顺序打印

2021-07-13 23:11:07 825

原创 计算机操作系统2(运行环境、体系结构和中断)

操作系统的运行环境

2021-07-12 17:05:28 128

原创 计算机操作系统学习笔记1(基本概念、发展与分类)

操作系统基本概念(**)计算机硬件(即冯.诺依曼模型)将计算机硬件分为运算器、存储器、控制器、输入设备、输出设备五个部分。我们将没有配置软件的计算机称为裸机,裸机仅仅构成了计算机系统的硬件基础。计算机系统的层次结构:应用程序eg:QQ音乐等;操作系统:1.负责管理协调硬件、软件等计算机资源的工作。2.为上层的应用程序、用户提供简单易用的服务。3.操作系统是系统软件,而不是硬件硬件eg:CPU、内存、硬盘因此,操作系统(OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工

2021-07-12 11:15:12 121

原创 解析Bone Collector II HDU - 2639

#include<bits/stdc++.h>using namespace std;const int maxn=1005;int main(){ int T; cin>>T; int dp[maxn][33],val[maxn],vol[maxn],A[33],B[33]; while(T--) { int n,v,k; cin>>n>>v>>k; int i,j,kk; for(i=0;i<n;i++)

2020-10-24 21:59:17 761

原创 Cow Exhibition(变形的01背包)

题目链接:http://poj.org/problem?id=2184该题目的意思:一共有n头牛,si和fi为其聪明度和有趣度,我们需要选择哪些牛参加展览是的两个的和最大,同时保证这两个值都不为负数。思路这道题是一道dp题目,其转移方程就是看是否放下这一头牛,因此我们可以使用01背包来解决这个问题,将其聪明度看为是体积,有趣度看为价值,我们需要计算的是当聪明度大于等于0的时候有趣度最大,然后将两个相加,以此来使得相加最大,但是其中有一个困扰是作为体积来看的聪明度会有负值,所以我们需要在程序中使其始终为

2020-10-11 16:04:16 178

原创 The King’s Ups and Downs【dp,排列组合】

在题目中主要的思考是,如何确定第n个和前面的关系,我们首先考虑的是,n和前面n-1个的关系,我们在n个中将n个人从矮到高依次排序为1~n,而依照题意,我们在第i个位置插入n必须满足题目意思,又因为n为当前最高点,所以只能左边为高矮,右边为矮高,又因为在全部的排列组合中,只存在矮高和高矮的顺序,所以设dp[i][0]为高矮,dp[i][1]为矮高,dp[i][0]=dp[i][1]=sum[i]/2;又因为在前面j个为高矮的时候可以在总共的i个数中取i个,所以我们可以用排列组合的方法分析在i个中取前j个种类是

2020-10-10 13:44:42 129

原创 蓝桥杯对局匹配及动态规划

题干:问题描述  小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。  小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。  现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, … AN。  小明想了解最多可能有多少名用户同时在线寻找对手,但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)?输入格式  第一行包含两个个整数N和K。  第二行

2020-09-25 11:24:32 222

原创 动态规划问题入门

学动态规划是在写蓝桥杯题目的时候,遇到了一道题目,需要动态规划的知识。在蓝桥杯,对局匹配题目中:http://lx.lanqiao.cn/detail.page?submitid=5016804需要运用到对局匹配的知识。定义动态规划就是通过拆分问题,已达到分治的目的。通过你将待求解的问题拆分成若干个子问题,通过求解前一个子问题的解来为后面的子问题提供有效信息。在求最优解时,通过把前一个子问题解的最优解求出来后,抛弃其他的解,以此来通过前一个问题的最优解来不断向后求解最优解,直到最后一个最优解出来后,

2020-09-25 00:47:46 164

原创 权值线段树及主席树的详解

这篇的重点是为各位简绍主席树的知识,当然在减少主席树之前,还需要一些准备知识第一:离散化离散化:把无限空间有限个体映射到有限空间里有限白话:在不改变数据相对大小的条件下,对数据进行相应的缩小例如:原数据:7 1 4 3处理后:4 1 3 2原数据:{100,250}{200,400}处理后{1,3}{2,4}离散化需要函数:unique函数(去重函数)low_bound(x,y,val)函数:在(x,y)范围内返回>=val的第一个元素位置。如果所有元素都小于val,则返回last

2020-08-14 16:30:21 1253 2

原创 线段树(lazy用法)

在上一篇中,我们讨论了线段树的基础用法,其中我们对于线段树的修改,仅仅限制于对于线段树的点的修改,而不是对于某一个一段区间的修改。那么我们现在来想想如果对于线段树的一段区间来进行修改的话,如果我们还是来对线段树的每一个点都进行修改的话,那么,假设我们需要修改m个点,其时间复杂度岂不是为O(log(n))了,那么我们所需要的少的时间复杂度的要求就没有达成,为此,lazy数组应运而生,来解决这个问题。首先我们来认识一下lazy:如果当前区间被需要修改的目标区间完全覆盖,打一个标记。如果下一次的查询或者更改包

2020-08-14 12:16:37 2130 1

原创 线段树炒鸡无敌简单入门法(lazy在另外的一篇)

最近在学习线段树这个东东,有点难,但是学完之后确实收获挺多第一:线段树的优势对于我们平常对于一段区间的存储,删改,查询区间的值,我们一般会选择用普通的一维数组去存储如下面:我们输入n个数,求第s个到第t个数的和#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int main(){ int n.s,t; int sum=0; cin>>n&g

2020-08-13 22:29:30 194

原创 ceil(),floor(),round()函数浅析

ceil(),floor(),round()这三个函数都是取整函数用我自己的话来讲:ceil是顺着X轴的正半轴向最大的整数取值。floor是顺着X轴的负半轴向小的整数取值。round通俗来讲就是4舍5入的方式。这几个函数的头文件都是#include代码如下:#include<cstdio>#include<iostream>#include<functional>#include<algorithm>#include<cmath&g

2020-05-23 22:47:21 276

原创 greater(type)与less(type)

首先我们需要明白greater与less操作符的头文件都是#include中的,这两个函数都是用来重载运算符的。greater(),less()与sort联用#include<iostream>#include<cstdio>#include<functional>//greater<int>()和less<int>()函数#include<algorithm>//sort函数using namespace std;int

2020-05-23 09:31:53 574

原创 二分法浅析

刚刚接触二分法时候,是在写cup题的时候,求水的高度,一个杯子装了很多水,可以把杯子看成圆台,并给出圆台的底面半径,顶部半径,高还有水的体积,求水的高度。Input输入包括T组数据每组数据包含一行,并且有四个数r, R, H, V代表圆台底部半径,顶部半径,高度和水的体积。1. T ≤ 20.2. 1 ≤ r, R, H ≤ 100; 0 ≤ V ≤ 1000,000,000.3. r ≤ R.4. r, R, H, V 输入5. 无空数据 Output答案为一行,保留6位小数在这

2020-05-21 16:01:00 163

原创 unique函数--去重操作浅析

首先我们得知道unique函数的头文件是#includeunique函数的作用:将一个数组中的不相同的元素提前,并且返回最后一个不相同的元素的后一位的地址。#include <iostream>#include <algorithm>using namespace std;int main(){ int a[10] = { 0, 7, 7, 6, 1, 1, 5, 5, 8, 9 }; int n = unique(a, a + 10) - a;

2020-05-15 10:28:08 467

原创 Filya and Homework及unique,sort函数浅析

Filya and Homework:这道题看似很简单,但是内涵玄机。在这道题中,要求我们判断输入的数组能否满足在同时对某一部分的元素进行加与减的时候使得整个数组元素相等,我们分析题目,不难发现这首先是一道数学题,其次才是一道编程题(所以说数学是学好编程的关键)。我首先来说一说我对这道题的思路:首先,是需要我们找到有多少个不同的元素,然后就是可以知道当不同元素小于三个的话,就是一定可以的。然后超过三个的话就是一定不行的。其次,求当不同元素是三个的时候,找出最大最小和中间的值,当不同元素为三个时,最大值

2020-05-14 23:16:02 200

原创 QAQ浅析

QAQ :这道题求QAQ的个数,只要求方向,未要求距离,其实只需要早出这三个元素来组装即可,最粗暴的方式是利用三重循环来进行,又由于此题的计算量较低,在三重循环下也是可以运行为AC码的,其实还有另外的时间复杂度更低的算法,各位可以去了解。#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int sum=0;int i

2020-05-14 17:52:25 261

原创 Gerald Hexagon浅析

Gerald’s Hexagon:这是一个纯粹的数学题,只需要将6边型的三个边补齐,换算为等边三角形再来计算小三角形的个数,减去补充的三角形的个数即可。#include <iostream>#include <algorithm>using namespace std;int main(){ int a[10]; int t,i; for(i=0;i<6;i++) cin>>a[i]; t=a[0]+a[1

2020-05-14 17:47:03 147

原创 Helpful Maths浅析

Helpful Maths:有题目意思我们可以很清楚的知道的是,当只输入一个数字时,我们便只需要输出此数字即可。当输入数字超过一个的时候,这道题就变成了一道排序题的升级版,我们只需要将数字单独存储,在将字符“+”单独存储,并分别计算出个数即可。要注意在最后时换行,不然会格式不对无法AC#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<alg

2020-05-14 17:40:47 326

原创 How Many Tables浅析

How Many Tables:这道题考察的是我们的并查集:只需要将有联系的人的根节点连在一起就可以很轻松的写出程序。代码如下:#include <iostream>#include<cstdio>#include<algorithm>using namespace std;int father[2020];int number;int f(...

2020-05-05 17:22:59 434

原创 The Suspects浅析

The Suspects:这道题是利用并查集第手法,将每一组的数据相串联,以其中最小的数作为根,再归集到0上。最后只需要查看0的关联数目即可#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int father[30010];int sum[30010...

2020-05-05 17:10:25 391

原创 畅通工程浅析

畅通工程:这道题主要是考察并查集的知识程序如下:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int pre[1010];int zhao(int root...

2020-05-05 16:57:40 96

原创 骨牌铺方格及递归浅析

骨牌铺方格 :在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:这道题就是考察我们对递归的掌握:代码如下:#include <iostream>#include <algorithm>using namespace std;int main(){ in...

2020-05-05 11:35:32 689

原创 一只小蜜蜂(与递归浅析)

一只小蜜蜂:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。由题意,我们可以知道,如果蜜蜂在1处时,若想爬往4,则可通过:1.(1->2->4);2.(1->3->4) ;3.(1->2->3->4)这三种办法,不可以通过(1->3->2->4)因为题...

2020-05-04 22:32:53 3346 2

转载 超有爱的并查集~

超有爱的并查集~ ...

2020-05-04 15:00:35 108

原创 The Doctor Meets Vader--对pair与map的比较

The Doctor Meets Vader:这道题中,我们需要将每个基地的防御力与金币一一匹配,因而我们会很自然的想到map函数,来对基地进行匹配,但是一时由于map函数自身的时间复杂度为O(logN),其次,由于下列函数的程序不够优化,导致在ACM的审核中会导致Time limit exceeded。map函数写法:#include <iostream>#include &...

2020-05-03 19:04:07 248

原创 Heidi Learns Hashing

Heidi Learns Hashing:这道题其实没有太多的算法要求,其主要是对我们数学能力的考察。代码如下:#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int main(){ long long r; while(cin&gt...

2020-05-03 17:20:57 273 1

原创 水果--map浅析

水果:在这道题中,要求我们对地点,水果,个数三个信息进行匹配,对于一对一的匹配问题,我们很容易联想到使用map函数。但是由于这道题需要将三个变量进行联系,我们不如进行双重map已达到目的。#include <iostream>#include <algorithm>#include <string>#include <map>using...

2020-05-03 17:17:38 227

原创 Let the Balloon Rise及map浅析

Let the Balloon Rise:这道题主要是对气球的个数进行统计,并且找出其中个数最多的气球的颜色。这道题使用map函数就可以非常轻松的实现,利用将颜色定义为map中的key,利用循环统计key出现的次数来对其个数进行统计。难点是如何输出最大的个数:由于map函数自定义内部是有小到大的排序,所以我们通过迭代器定义m,p俩个来进行最大值的存储。#include<cstdio...

2020-05-03 17:04:45 340

原创 愚人节的礼物---浅析

愚人节的礼物 :这道题将()当做箱子,因而我只需计算在找到B之前至少需要打开多少()即可,在出现(()(B))情况,我们其实无需打开另外一个箱子,只需要直接打开B。因此这道题的主要思想就是数清楚“(”的个数,用单个的“(”代表一个箱子。方法一:可以考虑使用栈来进行操作。在遇见“B”之前,遇见“(”,就进行入栈,遇见“)”则执行出栈。方法二:通过数组,与ans来对箱子的个数进行统计,在遇见“...

2020-05-03 16:38:43 293

原创 Letters Shop浅析

Letters Shop这道题大致的意思是在字符串s中购买足够的字符(必须依次购买)来足够拼写朋友的名字,求购买的最小值是多少。在这道题中,主要的难点是如何去存储各个字符和如何去匹配各个字符,可以通过vector来构建。在最坏的情况下,26个字母都会出现,我们可以定义27个vector线性组,以防溢出。**:在这道题中还要注意vector的几个用法vectorv[27] ...

2020-05-03 16:24:26 204

转载 关于lower_bound( )和upper_bound( )的常见用法

lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):...

2020-05-02 15:35:16 181

转载 [转载]CSDN怎么转载别人的博客

...

2020-05-02 11:09:24 413

转载 C++pair类型的浅析

标准库类型--pair类型定义在utility头文件中定义 本文地址:http://www.cnblogs.com/archimedes/p/cpp-pair.html,转载请注...

2020-05-02 11:06:16 373

空空如也

空空如也

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

TA关注的人

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