<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[malloch的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/malloch</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; malloch]]></copyright><item><title><![CDATA[后序遍历解决树的路径问题]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/120391489</link><guid>https://blog.youkuaiyun.com/malloch/article/details/120391489</guid><author>malloch</author><pubDate>Mon, 20 Sep 2021 15:12:17 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[关于在递归中删除链表结点不会导致链表断链的理解]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/120239099</link><guid>https://blog.youkuaiyun.com/malloch/article/details/120239099</guid><author>malloch</author><pubDate>Sat, 11 Sep 2021 16:55:19 +0800</pubDate><description><![CDATA[&nbsp; &nbsp; &nbsp; &nbsp; 题目来自王道书：设计一个递归算法，删除不带头结点的单链表L中所有值为x的结点。
&nbsp; &nbsp; &nbsp; &nbsp; 这道题在开始看的时候是觉得很简单的，判断是否等于x，然后在L-&gt;next进行递归就是了，但是当我看到答案的时候就很懵了（答案如下）：
void Del_x_3(Linklist &amp;L,ElemType x)
{
	LNode *p;
	if(L==NULL)
		return;
	if(L-&gt;dat]]></description><category></category></item><item><title><![CDATA[计算机操作系统学习笔记3（系统调用）]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/118713479</link><guid>https://blog.youkuaiyun.com/malloch/article/details/118713479</guid><author>malloch</author><pubDate>Tue, 13 Jul 2021 23:18:23 +0800</pubDate><description><![CDATA[回顾：在前面学的用户接口时，我们学习了两种，一是允许用户直接使用的命令接口，二是允许用户通过程序间接使用的程序接口，而程序接口就是由一组程序调用组成的
“系统调用”是操作系统提供给应用程序（程序员/编程人员）使用的接口，可以理解为一种可供应用程序调用的特殊函数，应用程序可以发出系统调用请求来获得操作系统的服务
问题：为什么需要“系统调用”功能？
在现实生活中，在打印店打印东西,你按下了打印按钮，在你的东西打印到了一半的时候，另外的一个同学页按下了打印按钮，但是最后你们打印的东西没有混在一起，都是按照顺序打印]]></description><category></category></item><item><title><![CDATA[第一章习题讲解（2020版操作系统）]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/118713420</link><guid>https://blog.youkuaiyun.com/malloch/article/details/118713420</guid><author>malloch</author><pubDate>Tue, 13 Jul 2021 23:11:07 +0800</pubDate><description><![CDATA[回顾：在前面学的用户接口时，我们学习了两种，一是允许用户直接使用的命令接口，二是允许用户通过程序间接使用的程序接口，而程序接口就是由一组程序调用组成的
“系统调用”是操作系统提供给应用程序（程序员/编程人员）使用的接口，可以理解为一种可供应用程序调用的特殊函数，应用程序可以发出系统调用请求来获得操作系统的服务
问题：为什么需要“系统调用”功能？
在现实生活中，在打印店打印东西,你按下了打印按钮，在你的东西打印到了一半的时候，另外的一个同学页按下了打印按钮，但是最后你们打印的东西没有混在一起，都是按照顺序打印]]></description><category></category></item><item><title><![CDATA[计算机操作系统2（运行环境、体系结构和中断）]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/118671178</link><guid>https://blog.youkuaiyun.com/malloch/article/details/118671178</guid><author>malloch</author><pubDate>Mon, 12 Jul 2021 17:05:28 +0800</pubDate><description><![CDATA[操作系统的运行环境

]]></description><category></category></item><item><title><![CDATA[计算机操作系统学习笔记1（基本概念、发展与分类）]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/118667780</link><guid>https://blog.youkuaiyun.com/malloch/article/details/118667780</guid><author>malloch</author><pubDate>Mon, 12 Jul 2021 11:15:12 +0800</pubDate><description><![CDATA[操作系统基本概念（**）
计算机硬件（即冯.诺依曼模型）将计算机硬件分为运算器、存储器、控制器、输入设备、输出设备五个部分。我们将没有配置软件的计算机称为裸机，裸机仅仅构成了计算机系统的硬件基础。
计算机系统的层次结构：
应用程序eg:QQ音乐等；
操作系统：1.负责管理协调硬件、软件等计算机资源的工作。2.为上层的应用程序、用户提供简单易用的服务。3.操作系统是系统软件，而不是硬件
硬件eg:CPU、内存、硬盘
因此，操作系统（OS）是指控制和管理整个计算机系统的硬件和软件资源，并合理地组织调度计算机的工]]></description><category></category></item><item><title><![CDATA[解析Bone Collector II HDU - 2639]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/109266801</link><guid>https://blog.youkuaiyun.com/malloch/article/details/109266801</guid><author>malloch</author><pubDate>Sat, 24 Oct 2020 21:59:17 +0800</pubDate><description><![CDATA[#include&lt;bits/stdc++.h&gt;
using namespace std;
const int maxn=1005;
int main()
{
	int T;
	cin&gt;&gt;T;
	int dp[maxn][33],val[maxn],vol[maxn],A[33],B[33];
	while(T--)
	{
		int n,v,k;
		cin&gt;&gt;n&gt;&gt;v&gt;&gt;k;
		int i,j,kk;
		for(i=0;i&lt;n;i++)]]></description><category></category></item><item><title><![CDATA[Cow Exhibition(变形的01背包)]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/109012266</link><guid>https://blog.youkuaiyun.com/malloch/article/details/109012266</guid><author>malloch</author><pubDate>Sun, 11 Oct 2020 16:04:16 +0800</pubDate><description><![CDATA[题目链接：http://poj.org/problem?id=2184
该题目的意思:一共有n头牛，si和fi为其聪明度和有趣度，我们需要选择哪些牛参加展览是的两个的和最大，同时保证这两个值都不为负数。
思路
这道题是一道dp题目，其转移方程就是看是否放下这一头牛，因此我们可以使用01背包来解决这个问题，将其聪明度看为是体积，有趣度看为价值，我们需要计算的是当聪明度大于等于0的时候有趣度最大，然后将两个相加，以此来使得相加最大，但是其中有一个困扰是作为体积来看的聪明度会有负值，所以我们需要在程序中使其始终为]]></description><category></category></item><item><title><![CDATA[The King’s Ups and Downs【dp，排列组合】]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/108995358</link><guid>https://blog.youkuaiyun.com/malloch/article/details/108995358</guid><author>malloch</author><pubDate>Sat, 10 Oct 2020 13:44:42 +0800</pubDate><description><![CDATA[在题目中主要的思考是,如何确定第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个种类是]]></description><category></category></item><item><title><![CDATA[蓝桥杯对局匹配及动态规划]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/108790883</link><guid>https://blog.youkuaiyun.com/malloch/article/details/108790883</guid><author>malloch</author><pubDate>Fri, 25 Sep 2020 11:24:32 +0800</pubDate><description><![CDATA[题干：
问题描述
　　小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分，代表他的围棋水平。
　　小明发现网站的自动对局系统在匹配对手时，只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K，系统都不会将他们匹配。
　　现在小明知道这个网站总共有N名用户，以及他们的积分分别是A1, A2, … AN。
　　小明想了解最多可能有多少名用户同时在线寻找对手，但是系统却一场对局都匹配不起来(任意两名用户积分差不等于K)？
输入格式
　　第一行包含两个个整数N和K。
　　第二行]]></description><category></category></item><item><title><![CDATA[动态规划问题入门]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/108785654</link><guid>https://blog.youkuaiyun.com/malloch/article/details/108785654</guid><author>malloch</author><pubDate>Fri, 25 Sep 2020 00:47:46 +0800</pubDate><description><![CDATA[学动态规划是在写蓝桥杯题目的时候，遇到了一道题目，需要动态规划的知识。
在蓝桥杯，对局匹配题目中：http://lx.lanqiao.cn/detail.page?submitid=5016804
需要运用到对局匹配的知识。
定义
动态规划就是通过拆分问题，已达到分治的目的。通过你将待求解的问题拆分成若干个子问题，通过求解前一个子问题的解来为后面的子问题提供有效信息。在求最优解时，通过把前一个子问题解的最优解求出来后，抛弃其他的解，以此来通过前一个问题的最优解来不断向后求解最优解，直到最后一个最优解出来后，]]></description><category></category></item><item><title><![CDATA[权值线段树及主席树的详解]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/108004551</link><guid>https://blog.youkuaiyun.com/malloch/article/details/108004551</guid><author>malloch</author><pubDate>Fri, 14 Aug 2020 16:30:21 +0800</pubDate><description><![CDATA[这篇的重点是为各位简绍主席树的知识，当然在减少主席树之前，还需要一些准备知识
第一：离散化
离散化：
把无限空间有限个体映射到有限空间里有限
白话:在不改变数据相对大小的条件下，对数据进行相应的缩小
例如:
原数据:7 1 4 3处理后:4 1 3 2
原数据:{100,250}{200,400}处理后{1,3}{2,4}
离散化需要函数:unique函数(去重函数)
low_bound(x,y,val)函数：
在(x,y)范围内返回&gt;=val的第一个元素位置。如果所有元素都小于val，则返回last]]></description><category></category></item><item><title><![CDATA[线段树(lazy用法)]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/107999709</link><guid>https://blog.youkuaiyun.com/malloch/article/details/107999709</guid><author>malloch</author><pubDate>Fri, 14 Aug 2020 12:16:37 +0800</pubDate><description><![CDATA[在上一篇中，我们讨论了线段树的基础用法，其中我们对于线段树的修改，仅仅限制于对于线段树的点的修改，而不是对于某一个一段区间的修改。
那么我们现在来想想如果对于线段树的一段区间来进行修改的话，如果我们还是来对线段树的每一个点都进行修改的话，那么，假设我们需要修改m个点，其时间复杂度岂不是为O(log(n))了，那么我们所需要的少的时间复杂度的要求就没有达成，为此，lazy数组应运而生，来解决这个问题。
首先我们来认识一下lazy：如果当前区间被需要修改的目标区间完全覆盖，打一个标记。如果下一次的查询或者更改包]]></description><category></category></item><item><title><![CDATA[线段树炒鸡无敌简单入门法(lazy在另外的一篇)]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/107990742</link><guid>https://blog.youkuaiyun.com/malloch/article/details/107990742</guid><author>malloch</author><pubDate>Thu, 13 Aug 2020 22:29:30 +0800</pubDate><description><![CDATA[最近在学习线段树这个东东，有点难，但是学完之后确实收获挺多
第一：线段树的优势
对于我们平常对于一段区间的存储，删改，查询区间的值，我们一般会选择用普通的一维数组去存储
如下面：我们输入n个数，求第s个到第t个数的和
#include&lt;cstdio&gt;
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
using namespace std;
int main()
{
	int n.s,t;
	int sum=0;
	cin&gt;&gt;n&g]]></description><category></category></item><item><title><![CDATA[ceil（），floor（），round（）函数浅析]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106307674</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106307674</guid><author>malloch</author><pubDate>Sat, 23 May 2020 22:47:21 +0800</pubDate><description><![CDATA[ceil(),floor(),round()这三个函数都是取整函数
用我自己的话来讲：
ceil是顺着X轴的正半轴向最大的整数取值。
floor是顺着X轴的负半轴向小的整数取值。
round通俗来讲就是4舍5入的方式。
这几个函数的头文件都是#include
代码如下：
#include&lt;cstdio&gt;
#include&lt;iostream&gt;
#include&lt;functional&gt;
#include&lt;algorithm&gt;
#include&lt;cmath&g]]></description><category></category></item><item><title><![CDATA[greater（type）与less（type）]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106295676</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106295676</guid><author>malloch</author><pubDate>Sat, 23 May 2020 09:31:53 +0800</pubDate><description><![CDATA[首先我们需要明白greater与less操作符的头文件都是#include中的，这两个函数都是用来重载运算符的。
greater(),less()与sort联用
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;functional&gt;//greater&lt;int&gt;()和less&lt;int&gt;()函数
#include&lt;algorithm&gt;//sort函数
using namespace std;
int]]></description><category></category></item><item><title><![CDATA[二分法浅析]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106238995</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106238995</guid><author>malloch</author><pubDate>Thu, 21 May 2020 16:01:00 +0800</pubDate><description><![CDATA[刚刚接触二分法时候，是在写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位小数
在这]]></description><category></category></item><item><title><![CDATA[unique函数--去重操作浅析]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106134021</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106134021</guid><author>malloch</author><pubDate>Fri, 15 May 2020 10:28:08 +0800</pubDate><description><![CDATA[首先我们得知道unique函数的头文件是#include
unique函数的作用：将一个数组中的不相同的元素提前，并且返回最后一个不相同的元素的后一位的地址。
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
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;
    ]]></description><category></category></item><item><title><![CDATA[Filya and Homework及unique，sort函数浅析]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106130393</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106130393</guid><author>malloch</author><pubDate>Thu, 14 May 2020 23:16:02 +0800</pubDate><description><![CDATA[Filya and Homework：
这道题看似很简单，但是内涵玄机。
在这道题中，要求我们判断输入的数组能否满足在同时对某一部分的元素进行加与减的时候使得整个数组元素相等，我们分析题目，不难发现这首先是一道数学题，其次才是一道编程题（所以说数学是学好编程的关键）。
我首先来说一说我对这道题的思路：首先，是需要我们找到有多少个不同的元素，然后就是可以知道当不同元素小于三个的话，就是一定可以的。然后超过三个的话就是一定不行的。其次，求当不同元素是三个的时候，找出最大最小和中间的值，当不同元素为三个时，最大值]]></description><category></category></item><item><title><![CDATA[QAQ浅析]]></title><link>https://blog.youkuaiyun.com/malloch/article/details/106125188</link><guid>https://blog.youkuaiyun.com/malloch/article/details/106125188</guid><author>malloch</author><pubDate>Thu, 14 May 2020 17:52:25 +0800</pubDate><description><![CDATA[QAQ ：
这道题求QAQ的个数，只要求方向，未要求距离，其实只需要早出这三个元素来组装即可，最粗暴的方式是利用三重循环来进行，又由于此题的计算量较低，在三重循环下也是可以运行为AC码的，其实还有另外的时间复杂度更低的算法，各位可以去了解。
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
using namespace std;
int sum=0;
int i]]></description><category></category></item></channel></rss>