进程创建问题
fork函数的应用与理解一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。
一个例子:
12345678910111213141516171819202122232425#include <unistd.h>#include <stdio.h> int main (){ pid_t fpid; //fpid表示fork函数返回的值 int count = 0; fpid = fork(); if (fpid < 0) printf("error in fork!\n"); else if (fpid == 0) { pr ...
并查集-高级数据结构
并查集总概
合并两个集合
查询某个节点的祖宗的节点
记录每个集合的大小:(绑定到根节点)
每个节点到根节点的距离:(绑定到每个节点上)
1250. 格子游戏题目链接:1250. 格子游戏
题解思路:根据题目,将各个元素映射到一维数组中,连接起来,检查连接的过程中是否出现环(若出现环状-》出现连接的时候两个节点在同一个连通块中)就说明有圈了
题目代码:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <bits/stdc++.h>using namespace std;const int N = 41000;int p[N];int n, m;int get(int x, int y){ return x * n + y; //如果是第二种初始化的话可以按照数据来乘倍率 /* return x * 200 + y; */}int find(int x){ i ...
高级数据结构
并查集总概
合并两个集合
查询某个节点的祖宗的节点
记录每个集合的大小:(绑定到根节点)
每个节点到根节点的距离:(绑定到每个节点上)
1250. 格子游戏题目链接:1250. 格子游戏
题解思路:根据题目,将各个元素映射到一维数组中,连接起来,检查连接的过程中是否出现环(若出现环状-》出现连接的时候两个节点在同一个连通块中)就说明有圈了
题目代码:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <bits/stdc++.h>using namespace std;const int N = 41000;int p[N];int n, m;int get(int x, int y){ return x * n + y; //如果是第二种初始化的话可以按照数据来乘倍率 /* return x * 200 + y; */}int find(int x){ i ...
图论
最小生成树Kruskal算法:(稀疏图)
按照边权排序,用并查集维护
未连接的:连上
已经连接的:忽略
时间复杂度是O(mlogn)
Prim算法:(稠密图 O(n^2))
邻阶矩阵存储, d[i]表示i这个未选节点到已选集合的距离
每次找到最小距离(未选点到已选集合)
走廊泼水节题目链接走廊泼水节
描述:给一个树,求一个完全图所加边的权值之和最小值,并且这个图的最小生成树任然是这个树。
题解思路就是在求最小生成树的时候,用Kruskal算法, 当两个集合需要合并的时候,这两个集合连线是最小的,两个集合其他点连线的权值就是这个两个集合连线最小值+1
题目代码12345678910111213141516171819202122232425262728293031323334353637383940#include <bits/stdc++.h>using namespace std;const int N = 6010;struct edge { int x, y, z; } a[N];int fa[N], Size[N];int n;boo ...
力扣-系列算法题
LeetCode 1601. 最多可达成的换楼请求数目题目链接1601. 最多可达成的换楼请求数目
题解思路状态压缩,根据数据范围可以得出,假设请求长度为m,就是有m个请求,那么就有 1 << m种情况
直接遍历每种情况,求出最大符合条件的情况
代码python31234567891011121314151617181920212223242526272829class Solution: def maximumRequests(self, n: int, requests: List[List[int]]) -> int: m = len(requests) res = 0 def GetCnt(x): s = 0 while x: if x & 1: s += 1 x = x >> 1 return s def check ...
牛客寒假集训4J题(分解质因数+埃氏筛)
题目:https://ac.nowcoder.com/acm/contest/23479/J
求[l,r]区间内所有合数的最小公倍数%(1e9+7)
用埃氏筛筛掉所有质数,剩下为合数
求最小公倍数有3种方法
直接求最小公倍数
用$A*B/gcd(A,B)$就是两数之积 / 最大公因数
分解质因数:$A = 48=22223$ $B=210=2357$,然后两者共有的质因数C:(2,3),两者不共有的A:(2,2,2),B:(5,7)三者相乘 $232225*7 = 1680$
3.每一个合数的质因子都用unordered_map来维护,看这个质因子是否多于之前质因子的个数,将所有维护好的质因子相乘就是最小公倍数
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959 ...
计算机网络-自顶向下
第一章 计算机网络和因特网什么是因特网因特网的描述:
描述因特网具体构成:构成因特网的硬件和软件。
分布式应用提供服务的网络基础设施。
构成描述因特网是一个世界范围的计算机网络,即它是互联了遍及全世界的数以亿计的计算设备的网络。
连入因特网中的格式各样的设备。(网络边缘)
主机(host)或端系统(end system)
通信链路(communication link)。(接入网)
媒介:同轴电缆、铜线、光纤、无线电频谱
传输速率:带宽 bps
分组交换机(packet switch)两种类型。(网络核心)
路由器(router)和 链路层交换机(link-layer switch)
ISP: internet sercice provider ISP 因特网服务提供商。端系统通过ISP接入因特网。
协议(protocol):协议控制因特网中信息的接收和发送。一个协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及报文发送/或接收的一条报文或其他事件所采用的动作。
TCP(Transmission Control protocol 传输控制协议)
I ...
kuangbin 系列算法题
AcWing 4224. 起火迷宫题目链接4224. 起火迷宫 - AcWing题库
题解思路BFS:
每次火先向四周蔓延
J检查周围是否可以行走,火走过的地方就不可以继续行走了
相当于是将两个队列并行遍历检查
BFS123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include <bits/stdc++.h>#define pii pair<int, int>using namespace std;const int N = 1010;int n, m;char g[N][N];int st[N][N];int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, -1, 1};void f(){ cin >> n >> m; memset(st ...
博客创建笔记
需要有git node hexo npm全局安装cnpm
npm install -g cnpm —registry=https://registry.npm.taobao.org
cnpm 全局安装hexo 博客框架
cnpm install -g hexo-cli
创建blog
mkdir blog
进入blog初始化一个hexo blog
hexo init
创建文章
hexo n “我的笔记”
安装一个插件建立hexo仓库
cnpm install —save hexo-deployer-git
设置配置文件
1234deploy: type: git repo: https://github.com/jpc901/jpc901.github.io.git branch: master
主题安装github上搜butterfly主题直接安装
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment