【搬运】Linux新手快速入门指南
更新时间
来源
作者
2017/06/05 07:25:24
segmentfault.com
zhangwang
转载者注:
本文来源于segmentfault.com,后转载至m.linuxidc.com,因前者原文已失传,后者排版过于垃圾,故而搬运至此,方便查阅 ,也利于保护视力 。搬运完成后,本文将持续更新,加入个人见解,直至形成原创文章。
我以前经常在网上查类似于:
“在Ubuntu下如何让某个用户对某个文件夹拥有可读可写的权限?”
“Mac上如何通过命令行启动某个程序?”
“在Linux中如何彻底卸载某个软件?”
这类的问题。
当然这类问题都可以较容易的在网上找到解决方案,但是每次解决我都是知其然不知其所以然,所以当下次我碰到类似的问题时,我还是要花一定的时间去查,这让我有一种挫败感;开发相关的知识大多变得特别快,但是有些知识特别经典,其实比起某些库或框架也许更值得系统的了解。
这也是本文的写作初衷,一方面是自己对近两个月来看的相关资料做一个总结,另一方面也希望可以帮助Linux初学者更好的理解,运用这个系统。
先决条件
Linux安装
在学习Li ...
【OI考古】数论基础 | 扩展欧几里得算法
帮助你对扩欧形成直观而专业的理解
【OI考古】数据结构 | 树状数组
树状数组或二元索引树(英语:Binary Indexed Tree,Fenwick Tree),是一种用于高效处理对一个存储数字的列表进行更新及求前缀和的数据结构。
树状数组的元素所管理的序列结构如下图所示:
树状数组(单点修改)
模板题:洛谷 P3374 | [模板] 树状数组 1
题目描述
如题,已知一个数列,你需要进行下面两种操作:
将某一个数加上 xxx
求出某区间每一个数的和
输入格式
第一行包含两个正整数 n,mn,mn,m ,分别表示该数列数字的个数和操作的总个数。
第二行包含 nnn 个用空格分隔的整数,其中第 iii 个数字表示数列第 iii 项的初始值。
接下来 mmm 行每行包含 333 个整数,表示一个操作,具体如下:
1 x k 含义:将第 xxx 个数加上 kkk
2 x y 含义:输出区间 [x,y][x,y][x,y] 内每个数的和
输出格式
输入输出样例
输入
12345675 51 5 4 2 31 1 32 2 51 3 -11 4 22 1 4
输出
121416
说明/提示
【数据范围】
对于 30%30\%30% ...
HIT | 工科数学分析 | 课程笔记 | 2021春季
哈工大-微积分B-课程笔记
利用Sympy求解常系数微分方程
昨天接到一个需求,要求用Python实现求解常系数微分方程,虽然后来咕掉了,但是让我发现了Sympy这个科学计算库竟然有如此神奇的功能。本文将介绍如何用Sympy解决初值问题。
先决条件
Anaconda先决条件
我们强烈建议您使用免费的Anaconda Python发行版,该发行版为您处理如Numpy, Sympy, Scipy等软件包依赖项提供了一种简便的方法。
你可以参考 这篇文章 来部署Anaconda。
Sympy先决条件
SymPy是一个符号计算的Python库。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能。
在开始用Sympy求解微分方程之前,不妨先入门一下Sympy。
求微分方程通解
以初值问题:
y′′+2y′+2y=xe−x,y(0)=y′(0)=0y''+2y'+2y=xe^{-x}, \quad y(0)=y'(0)=0
y′′+2y′+2y=xe−x,y(0)=y′(0)=0 ...
【Codeforces】 题解 - Round 709 (Div.2)
本文合作者:laybxc
题解持续补充…
赛事信息
名称
出题人
开始时间
时长
官方题解
Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round)
Aleks5dAndreySerguninDiegogrcGolovanov399KANamethyst0
Mar/21/202121:20 (UTC+8)
02:15
Codeforces Round #709 Editorial
A. Prison Break
题目
题目描述
给出 a×ba \times ba×b 的网格,问最少去掉多少条边,可以使得所有格子和外界连通。
输入格式
一行一个整数 t(1≤t≤100)t(1 \leq t \leq 100)t(1≤t≤100) ,表示数据组数。
第二行两个整数,表示参数 a,b(1≤a,b≤100)a,b(1 \leq a,b \leq 100)a,b(1≤a,b≤100) 。
输出格式
一个整数,表示答案
输入输出样例
输入
12322 21 3
输出
1243
说明/提示
两组测试数据 ...
【OI考古】图论 | 最近公共祖先 LCA
最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。
以人的肉眼看来,一棵树上任意两点的LCA位置是显然的,然而对于计算机来说,最朴素的算法便是遍历整棵树来寻找LCA,当询问次数很多的时候,朴素算法的效率将非常低下。本文将介绍几种常见的快速求解LCA的算法。
模板题:洛谷 P3379 | [模板] 最近公共祖先(LCA)
题目描述
如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。
输入格式
第一行包含三个正整数 N,M,SN,M,SN,M,S ,分别表示树的结点个数、询问的个数和树根结点的序号。
接下来 N−1N-1N−1 行每行包含两个正整数 x,yx, yx,y ,表示 xxx 结点和 yyy 结点之间有一条直接连接的边(数据保证可以构成树)。
接下来 MMM 行每行包含两个正整数 a,ba, ba,b ,表示询问 aaa 结点和 bbb 结点的最近公共祖先。
输出格式
输出包含 MMM 行,每行包含一个正整数,依次为每一个询问的结果。
输入输出样例
输入 #1
12345678 ...
【OI考古】数据结构 | 线段树
线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。
线段树可以在 nlognn\log_{}{n}nlogn 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。
线段树维护的信息,需要满足可加性,即能以可以接受的速度合并信息和修改信息,包括在使用懒惰标记时,标记也要满足可加性(例如取模就不满足可加性,对 333 取模然后对 444 取模,两个操作就不能合并在一起做)。
加法线段树
模板题:洛谷 P3372 | [模板] 线段树 1
题目描述
如题,已知一个数列,你需要进行下面两种操作:
将某区间每一个数加上 kkk 。
求出某区间每一个数的和。
输入格式
第一行包含两个整数 n,mn, mn,m 分别表示该数列数字的个数和操作的总个数。
第二行包含 nnn 个用空格分隔的整数,其中第 iii 个数字表示数列第 iii 项的初始值。
接下来 mmm 行每行包含 333 或 444 个整数,表示一个操作,具体如下:
1 x y k:将区间 [x,y][x, y][x,y] 内每个数加上 kkk 。
2 x y:输出区间 [x, ...
【Codeforces】 题解 - Round 707 (Div.2)
本文合作者:laybxc
赛事信息
名称
出题人
开始时间
时长
官方题解
Codeforces Round #707 (Div. 2, based on Moscow Open Olympiad in Informatics)
4qqqqAkulyatAleks5dDebNatkhEndagorionGlebsHPKiKoSNebuchadnezzarNiceClockSiberianZloboberalexX512biectioncdkrotch_egorgrphilisaf27ismagilov.codemeshanyavintage_Vlad_Makeevvoidmaxwrg0ababd
Mar/13/202117:05 (UTC+8)
02:30
Codeforces Round #707 Editorial
A. Alexey and Train
题目
题目描述
从时间0开始出发,要依次经过在一条直线上的 nnn 个站点,问到达站点n的时间。
每个站点 iii 都有对应的时间 ai,bi,tia_i,b_i,t_iai,bi,ti
从站点 i−1i ...
在Windows下编写C++对拍程序(真随机数)
对拍,即将相同的数据输入两个不同程序,比对其输出结果。可以用于在ACM/OI等比赛中用暴力算法检测标算的正确性,寻找使程序出错的样例数据。
随机数生成器
要编写好用的对拍程序,首要的是要编写一个随机数生成器,便于产生多样化的数据。
朴素随机数生成器
相信很多人都见过下面这种写法:
1234567891011121314151617181920//DataGenerator_naive.cpp#include <iostream>#include <cstdio>#include <ctime>using namespace std;int main(int argc, char *argv[]){ int seed = time(NULL); srand(seed); //以下代码可以生成10个随机整数 int n = 10; for (int i = 1; i <= n; i++) { printf("%d ", rand()); } retu ...