中位数第k大二分法 本文介绍利用二分法求中位数的一般思路如果一个题目要求中位数,二分答案,判定是否符合条件即可 D. Max Median题意给一个n和一个k,n表示有一个数组有n个元素,求所有“区间长度大于等于k”的区间中,中位数最大的多少 做法二分答案,检查是否存在一个大于等于k的区间满足即可,显然此时原数组元素具体值是多少已经不重要,重要的是元素的相对大小,设新数组b,若a[i]>=x,则b[i]=1,否 2023-11-19 算法 > 二分 #算法
字节序大小端问题 字节序的问题字节序问题,通常被称为大小端问题(Endianess),涉及到数据在计算机内存中的存储方式,尤其是多字节值(如整数、浮点数)的存储顺序。这个问题在不同架构的计算机系统中尤为重要,因为它会影响数据的解释和处理。主要有两种类型的字节序: 大端序(Big Endian):在这种方式下,多字节值的最高有效字节(MSB)存储在最低的内存地址,随后是次高有效字节,以此类推。例如,数值 0x123 2023-11-16 后端 > 网络编程 #c++
处理网络粘包问题 粘包问题原因: 因为TCP底层通信是面向字节流的,TCP只保证发送数据的准确性和顺序性,字节流以字节为单位,客户端每次发送N个字节给服务端,N取决于当前客户端的发送缓冲区是否有数据,比如发送缓冲区总大小为10个字节,当前有5个字节数据(上次要发送的数据比如’loveu’)未发送完,那么此时只有5个字节空闲空间,我们调用发送接口发送hello world!其实就是只能发送Hello给服务器,那么服务 2023-11-15 后端 > 网络编程 #c++
asio健壮的异步服务器 引言asio异步应答服务器存在隐患,就是因为使用了delete删除session对象,而本章使用智能指针防止重复delete对象session,使用智能指针构造成一个伪闭包的状态延长session的生命周期。 智能指针管理Session我们可以通过智能指针的方式管理Session类,将acceptor接收的链接保存在Session类型的智能指针里。由于智能指针会在引用计数为0时自动析构,所以为了 2023-11-13 后端 > 网络编程 #c++
asio普通的异步服务器 本文主要实现一个异步应答服务器 分文两个类 session:session类主要是处理客户端消息收发的会话类,属于服务端 server:server类为服务器接收连接的管理类,用于管理多个session,属于服务端 session类成员 123456789101112131415161718 class Session{public: Session(boost::asio 2023-11-13 后端 > 网络编程 #c++
asio异步读写操作及注意事项 简介本文介绍异步读写操作。 定义个session类,这个session类表示服务器处理客户端连接的管理类 其中有socket对象。 1234567class Session {public: Session(std::shared_ptr<asio::ip::tcp::socket> socket);//构造函数 void Connect(const asio:: 2023-11-12 后端 > 网络编程 #c++
asio socket同步读写 同步写write_somewrite_some可以每次向指定的空间写入固定的字节数,如果写缓冲区满了,就只写一部分,返回写入的字节数。 123456789void wirte_to_socket(asio::ip::tcp::socket& sock) { std::string buf = "Hello"; std::size_t total_bytes_w 2023-11-12 后端 > 网络编程 #c++
限制+修改单调队列(Ropeway) 2022ICPC 南京B.Ropeway 题意n+2个点编号0到n+1,每个点有点权,要求选若干个点使得总点权最小,其中编号为0 和n + 1的点必须选且点权为0 ,同时满足任意两个被选的点之间的距离不超过k 。 此外还会给一个01串,表示1到n这些点是否为必选的点,1为必选,0为可选可不选 现在会给m个询问,每个询问为如果将编号为x的点权修改为v,答案是多少?每次询问互不影响 n< 2023-11-11 算法 > dp #算法
有限制的背包(No Bug No Game) 2022 ICPC杭州 C. No Bug No Game 题目有n个物品,背包容量为k,给出n组物品,每一组物品有pi个,每个物品的体积从1到pi递增,取的体积不同,获得的价值也不同,体积从1到pi(连续),价值从w1到wj (j=pi) 如果当前背包容量足够,则必须取完整的重量 否则必须可以取部分体积来填满剩余的背包容量,问能取得的最大价值是多少 数据范围:n,k<=300 2023-11-11 算法 > dp #算法
asio socket的创建和连接 基础知识TCP和IP协议 TCP(传输控制协议):TCP是一种网络通信协议,它在互联网协议套件(TCP/IP)中负责确保数据的可靠传输。TCP提供了一种可靠的、面向连接的通信方式。这意味着在数据开始传输之前,两个网络设备(比如计算机)之间必须首先建立一个连接。TCP还负责确保数据的完整性和顺序正确。 IP协议(互联网协议):IP协议是另一种关键的网络通信协议,负责在网络上路由和传输数据包 2023-11-11 后端 > 网络编程 #c++