iOS
std::variant快速上手
std::variant 是 C++17 引入的一种类型安全的联合体,用来存储多个可能类型中的一种值,且保证使用时的类型安全。相比于传统的 union,std::variant 不仅能够存储不同类型的值,还能自动管理复杂类型的构造与析构。接下来,介绍如何快速上手 std::variant。 1. 定义 std::variant 使用 std::variant 可以定义一个变量,该变量可以持有多种不
Resource Acquisition Is Initialization
在 C++ 中,资源获取即初始化(RAII, Resource Acquisition Is Initialization)是一种管理资源的编程惯用法。其核心思想是将资源的获取和释放绑定到对象的生命周期中。具体来说: 资源获取: 在对象构造时获取资源,比如内存、文件句柄、网络连接等。 将资源的句柄或指针保存在对象的成员变量中。 资源释放: 在对象析构时释放资源。 利用析构函数自动清理
P3573 [POI2014] RAJ-Rally
题意 给定一个 DAG,你需要删掉一个点使得原图的最长路径的长度最短,求出答案和方案。 (nle 5times10^5,mle 10^6) 分析 DAG 的一条路径有一个优美的性质:一定是从拓扑序小的点指向拓扑序大的点。 考虑按照拓扑序从小到大处理每一个点。假设我们处理到了点 (x),它的拓扑序是 (i),设拓扑序小于 (i) 的点为左部点,拓扑序大于 (i) 的点为右部点。考虑将答案的贡献分为三
yzh 和她送你的魔法石子
题意简述 yzh 在一个特殊的日子里,送给你了 (n) 颗具有魔法的石子!你当然知道这是她为你准备的惊喜。她偷偷告诉你,为了使它们的魔法被释放出来,只有把这些石子分成若干堆,并且每一堆石子个数都能表示成 (3x^2-3x+1) 的形式,其中 yzh 希望让 (x > 1)。以你的聪明才智,不久就想到了划分的方法。并且你自信地说:“无论你给我多少颗石子,我都可以找到一种划分方案!”。这时她又凑
P2710 数列/P2042 [NOI2005] 维护数列
题意(以 P2710 为例) 思路 使用 FHQ-Treap 进行求解,清晰明了。 对于 insert,先将要插入的数建成一棵树,然后将这棵树放入 FHQ-Treap 中。 对于 delete,将要删除的树分离出来,然后把剩下的部分合并即可,将删除的树的树根丢到废弃节点的栈中以备以后使用(节约空间,不然 MLE)。 对于 reverse,给一个节点打上标签并立即交换,参考文艺平衡树代码。注意,
Dijkstra 算法
普通堆实现的 Dijkstra 算法 时间复杂度为 O(m * logm),m 为边数 distance[i] 表示从源点到 i 点的最短距离,visited[i] 表示 i 节点是否从小根堆弹出过 准备好小根堆,小根堆存放记录:(x 点,源点到 x 的距离),小根堆根据距离排序 令 distance[源点] = 0,(源点,0)入堆 从小根堆弹出(u 点,源点到 u 的距离)
POJ1562-Oil Deposits && HDOJ1241
接着刷邝斌飞搜索专题 POJ1562 1s 10000K 可用平台 1s 65536kB 洛谷 3s 0B HDOJ1241 1s 32768K 太水了吧这题,10min写完代码,但感觉思维好弱边写边想,没法想好直接快速写 但这次洛谷和hdojAC了,poj和可用平台WA了 这题是手在前,脑子在后,大概粗
VMware vCenter Server 8.0U3b 发布下载,新增功能概览
VMware vCenter Server 8.0U3b 发布下载,新增功能概览 Server Management Software | vCenter 请访问原文链接:https://sysin.org/blog/vmware-vcenter-8-u3/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org vCenter Server 8.0 Update 3b | 202
VMware vSphere 8.0 Update 3b 发布下载,新增功能概览
VMware vSphere 8.0 Update 3b 发布下载,新增功能概览 vSphere 8.0U3 | ESXi 8.0U3 & vCenter Server 8.0U3 请访问原文链接:https://sysin.org/blog/vmware-vsphere-8-u3/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VMware ESXi 8.0 U
[赛记] csp-s模拟2
不相邻集合 64pts 赛时打的用 $ set $ 打的假做法A了,但是没敢交,整了个暴力64pts; 可以发现,对于给定的一个序列,我们只需研究每个数一次就行,因为如果一个数出现多次,答案是不变的; 我们又可以发现,对于一个连续段(比如 1 2 3 4 5 ,其答案最多为 $ lceil frac n2 rceil $ ,其中 $ n $ 为此连续段的长度),所以我们只需动态维护极长连续段的长度
unable to find a medium containing a live file system
所有方法尝试了,仍然没有解决问题,refus、UltraISO都尝试重新做了启动盘…… 在尝试使用U盘安装Ubuntu时遇到“unable to find a medium containing a live file system”的错误,可能是由多种原因引起的。以下是一些可能的解决方案: 检查ISO文件的完整性:确保你下载的Ubuntu ISO文件没有损坏。可以通过比较ISO文件的哈希值来
C++信奥老师解一本通题 1164:digit函数
【题目描述】 在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。 【输入】 正整数n和k。 【输出】 一个数字。 【输入样例】 31859 3 【输出样例】 8 #include <iostream> using namespace std; int digit(long long n,int k) { if(k==1) return
P11071 「QMSOI R1」 Distorted Fate
介绍一种好想、在线、空间小、跑的还挺快的做法(?) 先暂时不考虑修改,只考虑怎么快速求解询问。 询问相当于区间内前缀按位或的和。根据按位或的性质,当区间内某个值在某一位下是 (1),那么所有包含这个值的前缀的按位或结果在该位下都为 (1)。 考虑拆位,单独考虑每一位对答案的贡献,设 (w) 是当前枚举的二进制位,([l,r]) 内从左往右第一个在该位下为 (1) 的数的下标为 (p),则这一位的
CF1716C Robot in a Hallway 题解
容易发现合法路径一定形如:先弯弯曲曲地走(即向下、向右、向上、向右地移动),再直接向右走到头,碰到边界后折回来。 所以考虑枚举弯曲地走的部分,这部分的最快时间容易求出。只需考虑快速求出剩余部分的最快时间,设对于第 (i) 第 (j) 列,这个时间为 (f_{i, j})。 发现移动和等待格子解锁实质上可以描述为在平面上移动:若平面的 (x) 轴为路程,(y) 轴为时间,移动一步相当于 (x lef
C++ 信息学奥赛 1161
#include <iostream> using namespace std; void trans(int num, int bin) { // 进行进制除法获取商和余数 int dis = num / bin; // 商 int rem = num % bin; // 余数 // 如果商不比进制数小,说明还可以继续进制除法,递归调用 // 商比进制数小,说明没办
嘘つきな天使たち AtCoder
根据题意可知,如果第 (i) 只生物是天使那么 (a_i) 生物就是恶魔,如果第 (i) 只生物是恶魔那么 (a_i) 生物就是天使,这时我们就发现这与二分图染色法相同,关于二分图染色法可以看这里。 样例一如下图: 因为这题要求出恶魔数量最多的方案,所以每次选择颜色最多的那个颜色加到答案上。 注意:图不连通,输出答案要换行。 比较详细的代码:
15款优秀的终端工具推荐
终端,是用户与操作系统进行交互的最原始的输入输出环境,也是执行一些高级系统操作的必要工具。对于程序员而言,终端可以说是经常要打交道的工具了,如果好用的话能大大提高我们的效率。本文就简单介绍下我遇到的比较好的工具。 Terminal 和 Shell 的区别 先介绍一些基本概念: 我们打开 Windows 的那个「小黑框」(Command Prompt),实际上就是打开了一个终端(Termina
.NET 开源工业级移动端仓库管理系统
前言 在工业生产中,定制化的软件对于每个环节都至关重要。对于仓库管理,推荐一款开源的仓库管理系统(WMS)解决方案。 这款基于.NET 框架开发的移动应用,提供了全面的仓库操作、订单处理、主数据管理、数据分析及个人信息设置等功能,是工业仓库管理的有利助手。 项目介绍 SmoWMS 是一款基于.NET 技术开发的移动仓库管理系统。 包含了仓库管理中基础的入库、出库、订单管理、调拨、盘点、报表等功能。
关于 OpenWrt 固件 和 ImmortalWrt 固件
关于 OpenWrt 固件介绍 OpenWrt 是一个广泛使用的开源固件项目,专门为路由器和其他网络设备设计。它不仅提供了基础的网络功能,还允许用户自定义设备的功能,使其成为一个非常强大的平台。 起源和发展: OpenWrt 最初是在2000年代初为 Linksys WRT54G/GS 路由器开发的一个固件替代品。 随着时间的发展,OpenWrt 社区不断壮大,支持的设备种类也越来
C++14的一些新特性
记录一些C++14的一些特性: 参考:https://github.com/0voice/cpp_new_features/blob/main/cpp_14/001_initializer_list_crbegin.cpp 函数返回值类型推导: C++14对函数返回类型推导规则做了优化: 返回值类型推导也可以用在模板中: 注意: 函数内如果有多个return
Codeforces 1988D(思维 + 树形DP)
题目链接 题意 有一棵包含 (n) 个结点的树。编号为 (i(1 le i le n)) 的结点上有一个攻击力为 (a_i) 的怪物。你要跟怪物对战若干回合,将它们全部杀死。 每一回合,所有存活着的怪物会对你进行一次攻击,假设它们的编号分别为 (j_1、j_2、cdotcdotcdot、j_m),则损失的生命值为 (a_{j_1} + a_{j_2} + cdotcdotcdot + a_{j_
Linux下eCal测试计划及进度记录
完整的源代码包: # 安装依赖 sudo apt-get install git cmake doxygen graphviz build-essential zlib1g-dev sudo apt-get install libhdf5-dev libprotobuf-dev libprotoc-dev protobuf-compiler sudo apt-get install li