自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

闻缺陷则喜何志丹

本人拙作《闻缺陷则喜》欢迎指教,可在CSDN下载

  • 博客(1816)
  • 资源 (86)
  • 收藏
  • 关注

原创 【排序 树状数组 逆序对 离散化】P8613 [蓝桥杯 2014 省 B] 小朋友排队|普及+

小朋友排队## 题目描述$n$ 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是 $0$。如果某个小朋友第一次被要求交换,则他的不高兴程度增加 $1$,如果第二次要求他交换,则他的不高兴程度增加 $2$(即不高兴程度为 $3$),依次类推。当要求某个小朋友第 $k$ 次交换时,他的不高兴程度增加 $k$。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。

2025-05-12 07:00:00 2676 68

原创 【BFS 换根法】P6150 [USACO20FEB] Clock Tree S|普及+

题目描述Farmer John 的新牛棚的设计十分奇怪:它由编号为 $1\ldots N$ 的 $N$ 间房间($2\leq N\leq 2\,500$),以及 $N−1$ 条走廊组成。每条走廊连接两间房间,使得每间房间都可以沿着一些走廊到达任意其他房间。牛棚里的每间房间都装有一个在表盘上印有标准的整数 $1\ldots 12$ 的圆形时钟。然而,这些时钟只有一根指针,并且总是直接指向表盘上的某个数字(它从不指向两个数字之间)。奶牛 Bessie 想要同步牛棚中的所有时钟,使它们都指向整数 $1

2025-05-05 07:00:00 1836 77

原创 【博客之星2024】何志丹盘点2024及徬徨2025

2024年发布博文728篇,基本上每天都2篇;目前有6篇博文处于待发布状态;这些天比较忙,所以草稿箱的博文急剧减少,只有182篇。几乎全部是原创,全部是自己刷题(力扣、洛谷)的题解。起初,只能先做题,做完题后,总结;现在水平略有提高,先写题解,再编码,提交通过后,再更新题解。

2025-01-23 07:00:00 5071 163

原创 矩阵性质、矩阵结合率、矩阵快速幂封装类及测试用例及样例

性质一:单位矩形I−nI-nI−n,n阶方阵,主对角线1,其它0。XI=X,IX=X。下面以AB=C为例。c[r][c] =∑j0n−1arj∗bjc∑j0n−1​arj∗bjc])B是单位矩阵时:b[j][c],当j== c时为1,其它为0,故c[r][c]=a[r][c]。A是单位矩阵时:a[r][j],当j==r时为1,其它为0,故c[r][c]=b[r][c]。性质二:AB等于(BA)的转置矩阵,单位矩阵的转置矩阵是本身。

2024-01-15 07:00:00 2030 206

原创 【滑动窗口】P4085 [USACO17DEC] Haybale Feast G|普及+

题目描述农夫约翰正在为他的奶牛准备一顿美味的晚餐!在他的谷仓里,他有 $N$ 个干草捆 $(1 \le N \le 10^5)$ 。第 $i$ 个干草捆有一定的风味 $F_i(1 \le F_i \le 10^9)$ 和一定的辣度 $S_i(1 \le S_i \le 10^9)$ 。这顿饭将由一道菜组成,是一个连续的区间,包含一个或多个连续的干草捆(农夫约翰不能改变干草捆的顺序)。这顿饭的总体的风味是这段区间里风味的总和。这顿饭的总体辣度是区间中所有草包的最大辣度。农夫约翰想确定他的这道菜所能

2025-05-17 07:00:00 1077

原创 【线段树】P4588 [TJOI2018] 数学计算|普及+

数学计算## 题目描述小豆现在有一个数 $x$,初始值为 $1$。小豆有 $Q$ 次操作,操作有两种类型:`1 m`:将 $x$ 变为 $x \times m$,并输出 $x \bmod M$`2 pos`:将 $x$ 变为 $x$ 除以第 $pos$ 次操作所乘的数(保证第 $pos$ 次操作一定为类型 1,对于每一个类型 1 的操作至多会被除一次),并输出 $x \bmod M$。## 输入格式一共有 $t$ 组输入。对于每一组输入,第一行是两个数字 $Q,M$。接下来

2025-05-16 17:00:00 872 1

原创 【线段树 动态规划】P7810 [JRKSJ R2] Upper|普及+

题目描述有 $n$ 张扑克,第 $i$ 张扑克上写有一个正整数 $a_i$。现在要把扑克划分成若干个合法的连续子段,其中,一个连续子段 $[l,r]$ “合法”当且仅当这个子段同时满足两个条件: * $a_l< a_r$* $\gcd(a_l,a_r)>1$ 请问最多能划分多少段。如果没有合法的划分方案,输出 $-1$ 即可。如果您不知道 $\gcd$ 是什么意思,请看“提示”部分。## 输入格式第一行一个整数 $n$。\第二行 $n$ 个整数表示序列 $a$。## 输出

2025-05-16 07:00:00 237

原创 【线段树】P8856 [POI 2002] 火车线路|普及+

P8856 [POI 2002] 火车线路## 题目描述某列火车从 $1$ 号城市出发,前往编号为 $C$ 的城市。该火车有 $S$ 个座位,现在有 $R$ 个车票订购需求。一个订购由 $O,D,N$ 三个整数组成,表示从起点站 $O$ 到目标站 $D$ 需要订购 $N$ 个座位。如果在该订购范围内有能满足的空座位,就称该订购可以被满足,否则就不可以。请你按订购给出顺序处理,判断是否可以满足该订购需求。## 输入格式第一行为三个整数 $C,S,R$。接下来 $R$ 行,每行为

2025-05-15 17:00:00 798

原创 【线段树】P9027 [CCC 2021 S5] Math Homework|普及+

Math Homework## 题目描述构造一个长度为 $N$ 的整数序列 $A$,使得:1. $\forall i,1\leq A_i\leq 10^9$;2. $\forall i,\gcd(A_{X_i},A_{X_i+1},\cdots,A_{Y_i})=Z_i$。或者报告无解。## 输入格式第一行,$N,M$。接下来 $M$ 行,每行有 $X_i,Y_i,Z_i$,描述一个限制 2.## 输出格式一行,序列 $A$,或者 `Impossible`。## 输入

2025-05-15 07:00:00 554

原创 【C++贪心】B4050挑战怪物|普及

挑战怪物## 题目描述小杨正在和一个怪物战斗,怪物的血量为 $h$,只有当怪物的血量**恰好**为 $0$ 时小杨才能够成功击败怪物。小杨有两种攻击怪物的方式:- 物理攻击。假设当前为小杨第 $i$ 次使用物理攻击,则会对怪物造成 $2^{i - 1}$ 点伤害。- 魔法攻击。小杨选择任意一个质数 $x$( 不能超过怪物当前血量),对怪物造成 $x$ 点伤害。由于小杨并不擅长魔法,他只能使用**至多一次**魔法攻击。小杨想知道自己能否击败怪物,如果能,小杨想知道自己最少需要多少次攻击。##

2025-05-14 17:00:00 1724

原创 【C++数论】P10702 [SNCPC2024] 下棋|普及

下棋## 题目描述LNC 喜欢所有 $k$ 进制下所有数位的乘积为自身因子的数。他称之为 LNC 数。例如:当 $k = 10$ 时,$y = (36)_{10}$ 是 LNC 数,因为 $(3 \times 6) \mid 36$。当 $k = 4$ 时,$y = (12)_4$ 是 LNC 数,因为转换成十进制后 $(12)_4 = (6)_{10}$,而 $(1 \times 2) \mid 6$。当 $k = 2$ 时,$y = (1101)_2$ 不是 LNC 数,因为转换成十

2025-05-14 07:00:00 789

原创 【线段树】P9349 [JOI 2023 Final] Stone Arranging 2|普及+

JOI-kun has $N$ go stones. The stones are numbered from $1$ to $N$. The color of each stone is an integer between $1$ and $10^9$, inclusive. In the beginning, the color of Stone $i$ ($1 \le i \le N$) is $A_i$.From now, JOI-kun will perform $N$ operations

2025-05-13 17:00:00 971 1

原创 【二分图 换根法 染色法 树的直径】P6722 「MCOI-01」Village 村庄|普及+

MCOI-01」Village 村庄## 题目背景今天,珂爱善良的0x3喵酱骑着一匹小马来到了一个村庄。“诶,这个村庄的布局 ……” “好像之前我玩 Ciste 的地方啊 qwq”0x3喵酱有一个地图,地图有着这个村庄的信息。然后0x3喵酱要通过这张地图来判断 Ciste 有解无解啦 ~注:Ciste 是《请问您今天要来点兔子吗》中的一种藏宝图游戏## 题目描述村庄被简化为一个 $n$ 个节点(编号为 $1$ 到 $n$)和 $n-1$ 条边构成的无向连通图。0x3喵

2025-05-13 07:00:00 1044 1

原创 【C++贪心】P11044 [蓝桥杯 2024 省 Java B] 食堂|普及

S 学校里一共有 $a_2$ 个两人寝、$a_3$ 个三人寝,$a_4$ 个四人寝,而食堂里有 $b_4$ 个四人桌和 $b_6$ 个六人桌。学校想要安排学生们在食堂用餐,并且满足每个寝室里的同学都在同一桌就坐,请问这个食堂最多同时满足多少同学用餐?

2025-05-12 17:00:00 596 4

原创 P10225 [COCI 2023/2024 #3] Milano C.le|普及

Milano C.le## 题目背景**译自 [COCI 2023/2024 Contest #3](https://hsin.hr/coci/archive/2023_2024) T3「[Milano C.le](https://hsin.hr/coci/archive/2023_2024/contest3_tasks.pdf)」**## 题目描述Silvia 目前在米兰中央车站,她注意到车站有很多站台。她觉得站台数量太多了,所以她打算统计有多少真正需要的站台。Silvia 同样注意到

2025-05-11 17:00:00 965

原创 【C++贪心 图论】P10166 [DTCPC 2024] 环|普及

环## 题目背景环## 题目描述给定无重边无自环的有向图 $G$ 和序列 $\{a_n\}$,每次可以花费 $a_i+a_j$ 的代价加上一条 $i\to j$ 的边,试花费最小代价使得可以找到 $k\geq 2$ 个不同的点 $p_1,p_2,\dots,p_k$,满足 $\forall i\in [1,k]$,都有一条 $p_i\to p_{i\bmod k+1}$ 的边。## 输入格式第一行两个整数 $n,m$($2\le n\le 5 \times 10^5$,$n-1 \l

2025-05-11 07:00:00 874

原创 【C++贪心 位运算】B3930 烹饪问题|普及

有 $N$ 种食材,编号从 $0$ 至 $N-1$,其中第 $i$ 种食材的美味度为 $a_i$。不同食材之间的组合可能产生奇妙的化学反应。具体来说,如果两种食材的美味度分别为 $x$ 和 $y$ ,那么它们的契合度为 $x\ \text{and}\ y $。其中,$\text{and}$ 运算为按位与运算,需要先将两个运算数转换为二进制,然后在高位补足 ,再逐位进行与运算。例如,$12$ 与 $6$ 的二进制表示分别为 $1100$ 和 $0110$ ,将它们逐位进行与运算,得到 $0100$ ,

2025-05-10 17:00:00 796

原创 【C++贪心】P9975 [USACO23DEC] Cowntact Tracing 2 B|普及

## 题目描述Farmer John 有 $N$ 头奶牛排成一列($1 \leq N \leq 3\cdot 10^5$)。不幸的是,有一种疾病正在传播。最初,有一些奶牛被感染。每到夜晚,被感染的奶牛会将疾病传播给它左右两边的奶牛(如果这些奶牛存在的话)。一旦奶牛被感染,她就会持续处于感染状态。经过一些晚上,Farmer John 意识到情况已经失控,因此他对奶牛进行了检测以确定哪些奶牛感染了疾病。请找出最少有多少头奶牛最初可能感染了这种疾病。## 输入格式第一行为一个整数 $N$,即

2025-05-10 07:00:00 1379

原创 【C++贪心】P9728 [EC Final 2022] Dining Professors|普及

[EC Final 2022] Dining Professors## 题面翻译**【题目描述】**庞教授邀请了 $n$ 位教授参加他的宴会。教授们坐在一个圆桌周围。对于所有 $i$,从 $1$ 到 $n$,教授 $i$ 坐在教授 $(i \bmod n) + 1$ 和 $((i + n - 2)\bmod n) + 1$ 旁边。庞教授准备了 $n$ 道菜。桌子上有 $n$ 个位置。位置 $i$ 在教授 $i$ 的前面。教授 $i$ 只能接触到放在位置 $i$、$(i \bmod n) +

2025-05-09 17:00:00 705 3

原创 【C++ 归并排序】P9321 [EGOI2022] Data Centers / 数据中心|普及

题目描述贡卡软件(贡软)是一家互联网公司,经营许多服务,在全球有 $n$ 个数据中心。每个数据中心都有一些可用的机器。出于安全和冗余的原因,每个服务都有一个或多个副本同时运行。每个副本在一个不同的数据中心运行,并需要一些机器来运行。一个服务的所有副本需要相同数量的机器。当贡软计划推出一项需要 $c_i$ 个副本,每个副本在 $m$ 台机器上运行的新的服务 $i$ 时,它按照当前可用机器对数据中心降序排序,然后在前 $c_i$ 个数据中心各使用 $m$ 台机器。请求出在推出 $s$ 个服务后,每个

2025-05-09 07:00:00 1154

原创 【C++贪心】P9228 原神|普及

题目背景## 提示:题目背景与题目无关。你说的对,但是《原神》是由米哈游自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「提瓦特」的幻想世界,在这里,被神选中的人将被授予「神之眼」,导引元素之力。你将扮演一位名为「旅行者」的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人——同时,逐步发掘「原神」的真相。因为你的素养很差,我现在每天玩原神都能赚 150 原石,每个月差不多 5000 原石的收入, 也就是现实生活中每个月 5000 美元的收入水平

2025-05-08 17:00:00 1744

原创 【C++贪心】P9143 [THUPC 2023 初赛] 众数|普及

众数## 题目描述你有若干个 $[1,n]$ 内的正整数:对于 $1 \le i \le n$,你有 $a_i$ 个整数 $i$。设 $S = \sum_{i=1}^n a_i$。对于一个序列 $p_1,p_2,\cdots,p_l$,定义其众数 $\text{maj}(p_1,p_2,\cdots,p_l)$ 为出现次数最多的数。若有多个数出现次数最多,则其中最大的数为其众数。现在你需要把这 $S$ 个数排成一个序列 $b_1,b_2,\cdots,b_S$,使得 $\sum_{i=1}^

2025-05-08 07:00:00 1328 1

原创 【C++贪心】P9344 去年天气旧亭台|普及

去年天气旧亭台## 题目背景依旧是过往的天气,过往的楼台烟雨。时间悄悄流逝着,山河仍在,人却已不是过去的人……## 题目描述登上楼台,旧时满面沉灰的地板映入眼帘。共有 $n$ 块地板,地板分为两类,第 $i$ 块地板的类别用 $c_i$ 表示,积灰程度用 $a_i$ 表示。**注意 $c_i$ 为 $0$ 或 $1$。**现在要清理这些地板上的灰尘。每次操作中,你可以:+ 选择两个下标 $i,j$,满足 $1\leq i\leq j\leq n$, $c_i=c_j$,**且第 $

2025-05-07 17:00:00 735 1

原创 【C++贪心】P9050 [PA2021] Sumy|普及

Sumy## 题目描述有 $n$ 条鱼,其中第 $i$ 条的质量为 $a_i$ 克。$x$ 能吃掉 $y$ 当且仅当 $a_x > a_y$。若 $x$ 吃了 $y$,$y$ 会消失,$a_x$ 会变为 $a_x + a_y$。你可以随意指定吃鱼的顺序,直至留下一条鱼为止。求每一条鱼是否可能被作为最后**唯一**的鱼留下。**若最终无法只剩下一条鱼,则每条鱼均不满足此条件。**## 输入格式第一行,一个整数 $n$;第二行,$n$ 个整数 $a_1, a_2, \cdot

2025-05-07 07:00:00 715

原创 【C数论】P8799 [蓝桥杯 2022 国 B] 齿轮|普及

这天,小明在组装齿轮。他一共有 $n$ 个齿轮,第 $i$ 个齿轮的半径为 $r_{i}$, 他需要把这 $n$ 个齿轮按一定顺序从左到右组装起来,这样最左边的齿轮转起来之后,可以传递到最右边的齿轮,并且这些齿轮能够起到提升或者降低转速(角速度)的作用。![](https://i-blog.csdnimg.cn/img_convert/29f820ce8d3c8471c8c0fe636d85db82.jpeg)小明看着这些齿轮,突然有 $Q$ 个疑问: 能否按一定顺序组装这些齿轮使得最右边的齿轮

2025-05-06 17:00:00 978

原创 【C++贪心】P8800 [蓝桥杯 2022 国 B] 卡牌|普及

卡牌## 题目描述这天,小明在整理他的卡牌。他一共有 $n$ 种卡牌,第 $i$ 种卡牌上印有正整数数 $i(i \in[1, n])$, 且第 $i$ 种卡牌现有 $a_{i}$ 张。而如果有 $n$ 张卡牌,其中每种卡牌各一张,那么这 $n$ 张卡牌可以被称为一套牌。小明为了凑出尽可能多套牌,拿出了 $m$ 张空白牌, 他可以在上面写上数 $i$,将其当做第 $i$ 种牌来凑出套牌。然而小明觉得手写的牌不太美观,决定第 $i$ 种牌最多手写 $b_{i}$ 张。请问小明最多能凑出多少

2025-05-06 07:00:00 910 1

原创 【C++贪心】P8787 砍竹子|普及

题目描述这天,小明在砍竹子,他面前有 $n$ 棵竹子排成一排,一开始第 $i$ 棵竹子的高度为 $h_{i}$.他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子的高度为 $H$,那么使用一次魔法可以把这一段竹子的高度都变为 $\left\lfloor\sqrt{\left\lfloor\frac{H}{2}\right\rfloor+1}\right\rfloor$, 其中 $\lfloor x\rfloor$ 表示对 $x$ 向下取整。小明想知道

2025-05-05 17:00:00 1759 1

原创 【C++贪心】P8782[蓝桥杯 2022 省 B] X 进制减法|普及

题目背景小 Y 是一个胖子,他最爱下楼梯了,因为下楼梯很省力气,但是他却有强迫症。由于刷漆工人 HG 的油漆不够,每一层台阶都只刷了一半——左边或右边,好让小 Y 下楼时不踩到油漆。(~~众人:这是什么逻辑?~~)## 题目描述整个楼梯共 $3^N$ 级台阶。HG 刷漆的规律是:对于**从上到下**第 $I$ 级台阶,若 $V_3(I)$ 是奇数,则刷在左边,否则刷在右边。**$V_3(I)$ 的定义请见提示。**小 Y 因为强迫症,要求自己不能踩到油漆。现在他来求助你,他最少会

2025-05-04 17:00:00 1658

原创 【C++数论】P10035 「FAOI-R2」Paint (A)|普及

题目背景小 Y 是一个胖子,他最爱下楼梯了,因为下楼梯很省力气,但是他却有强迫症。由于刷漆工人 HG 的油漆不够,每一层台阶都只刷了一半——左边或右边,好让小 Y 下楼时不踩到油漆。(~~众人:这是什么逻辑?~~)## 题目描述整个楼梯共 $3^N$ 级台阶。HG 刷漆的规律是:对于**从上到下**第 $I$ 级台阶,若 $V_3(I)$ 是奇数,则刷在左边,否则刷在右边。**$V_3(I)$ 的定义请见提示。**小 Y 因为强迫症,要求自己不能踩到油漆。现在他来求助你,他最少会

2025-05-04 08:20:50 925 2

原创 【C++贪心 图论】P7903兜心の顶|普及

兜心の顶## 题目描述给定正整数 $n$,要求构造一棵 $n$ 个结点的树,满足树的直径的重心 **不是** 树的重心。同时这棵树需满足:直径$^1$、重心$^2$、直径的重心$^3$全部唯一。---注:## 输入格式第一行输入一个正整数 $n$,表示树的结点个数。## 输出格式第一行输出一个正整数 $n$。接下来 $n-1$ 行,每行输出两个正整数 $u,v$,表示树的一条边。无解输出 `-1`。

2025-05-03 17:00:00 1121

原创 【C++贪心】P7319 「PMOI-4」生成树|普及

## 题目背景> 题目正解不会很难,反正很难的也必不会做,所以宁愿相信题目都是善良的。——command_block 《考前小贴士》djy 出了一道生成树的题,然后发现做法假了,就把这个题改了一下,作为这场比赛的 B。## 题目描述给定 $n$ 个数,第 $i$ 个数的原始权值是 $w_i$,你要按照某种顺序将这些数依次选择。若当前是第 $i$ 次选数,选择的**原始权值**为 $k$,则其他所有**未被选过**的数的权值均加上 $(-1)^{i+k+1} \times k$。你

2025-05-03 07:00:00 735

原创 【C++贪心】P8411 「SvR-1」Problem|普及

Problem## 题目背景小 L 打颓被 nodgd 发现,于是他开始做题了。## 题目描述他的 DS 非常菜,于是他把一共 $n$ 道 DS 题加到了自己的计划题单里,其中第 $i$ 道题的有趣程度为 $a_i$。由于他并不精通 DS,他发现他在做一些题目之前需要先做另一些题目。这样的关系共有 $n - 1$ 组,他还发现每道题都出现在了这些关系中且没有重复。他发现 $\forall 2 \leq i \leq n$,第 $i$ 题和第 $fa_i$ 题间存在上文所述的关系,且 $

2025-05-02 17:59:49 984

原创 【贪心 临项交换】P8109 [Cnoi2021] 幻想乡程序设计大赛|普及

# [Cnoi2021] 幻想乡程序设计大赛## 题目背景幻想乡,春。新年的土地吐出稚嫩的幼芽,第一届幻想乡程序设计大赛(Inner-Gensokyo Programming Contest, IGPC)拉开帷幕。作为举办者, Cirno 却有些不得不考虑的事情。那就是气球的分配问题。## 题目描述本场比赛共有 $n$ 道题,Cirno 已经精确预测了每道题目的 AC 队伍数 $a_1,a_2,a_3,\cdots,a_n$。但由于经费限制,主办方 $n$ 种颜色的气球分别只准备了

2025-05-02 17:00:00 771

原创 【贪心】P7076 [CSP-S2020] 动物园|普及

[CSP-S2020] 动物园## 题目描述动物园里饲养了很多动物,饲养员小 A 会根据饲养动物的情况,按照《饲养指南》购买不同种类的饲料,并将购买清单发给采购员小 B。 具体而言,动物世界里存在 $2^k$ 种不同的动物,它们被编号为 $0 \sim 2^k - 1$。动物园里饲养了其中的 $n$ 种,其中第 $i$ 种动物的编号为 $a_i$。《饲养指南》中共有 $m$ 条要求,第 $j$ 条要求形如“如果动物园中饲养着某种动物,满足其编号的二进制表示的第 $p_j$ 位为 $1$,则必须

2025-05-01 17:00:00 974 2

原创 【C++动态规划 数论】P8646 [蓝桥杯 2017 省 AB] 包子凑数|普及

# [蓝桥杯 2017 省 AB] 包子凑数## 题目描述小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 $N$ 种蒸笼,其中第 $i$ 种蒸笼恰好能放 $A_i$ 个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买 $X$ 个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有 $X$ 个包子。比如一共有 $3$ 种蒸笼,分别能放 $3$ 、 $4$ 和 $5$ 个包子。当顾客想买 $11$ 个包子时,大叔就会选 $2$ 笼 $3$ 个的再加 $1$ 笼

2025-05-01 07:00:00 1060 1

原创 【C++数论】P8636 [蓝桥杯 2016 省 AB] 最大比例|普及

## 题目描述X 星球的某个大奖赛设了 $M$ 级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:$$16,24,36,54$$其等比值为:$3/2$。现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。## 输入格式第一行为数字 $N(0<N<100)$,表示接下的一行包含 $N$ 个正整数。第二行 $N$ 个正整数 $X_i(X_i<10^{12})$,用空格分开。每

2025-04-30 17:00:00 724 2

原创 【C++数论】P7191 [COCI2007-2008#6] GRANICA|普及

[COCI2007-2008#6] GRANICA## 题目描述Luka 首先从 $n$ 个车牌上的数字写在一张纸上。然后,他尝试找到整数 $m$,以使纸上的所有数除以 $m$ 都得到相同的余数。Luka 想找到尽可能多的不同的 $m$。编写一个程序,给定 Luka 的 $n$ 个整数,确定所有 $m$。注意,你需要保证 $m$ 是正整数,即,$m> 1$。## 输入格式第一行,一个正整数 $n$,表示数的个数。接下来,$n$ 行,每行一个数 $a_i$,表示纸上的数,保证互不

2025-04-30 07:00:00 557

原创 【C++贪心】P6023 走路|普及

小 W 下载了一款运动软件。## 题目描述小 W 准备在接下来的 $m$ 天中锻炼,由于他不能走得太多以至于累死(怎么可能呢),所以他这 $m$ 天最多一共只能走 $n$ 步。 这个运动软件为了激励小 W 走路,推出了 $k$ 种激励措施,每种激励措施都形如“如果你第 $p$ 天中走完了 $q$ 步,那么第 $p$ 天中接下来的每一步都会给你加 $1$ 积分”。**激励措施可以叠加,即走一步你可能可以获得多于 $1$ 积分。** 现在小 W 想知道,他总计最多可以获取多少积分呢?## 输入格式

2025-04-29 17:00:00 885 1

原创 【C++贪心 前后缀分解】P9128 [USACO23FEB] Fertilizing Pastures G|省选

有 $N$ 个顶点的树,经过节点之间的每一条边都需要 $1s$。每个顶点一开始的权值均为 $0$,第 $i$ 个点的权值的增长速率为 $a_i/s$。FJ 从 $1$ 号顶点出发遍历整棵树。当 FJ 走到某个节点时,若该节点的权值为 $x$,则需要支出大小为 $x$ 的费用。(当然,只需在第一次经过该节点时需要支出。)给出一个参数 $T$:+ **若 $T=0$,FJ 必须回到 $1$ 号节点**。+ **若 $T=1$,FJ 可以在任意节点结束他的遍历**。求遍历所有节点的最小时间和此时需

2025-04-29 07:00:00 1493 1

原创 【前缀和 差分数组 数论】P6042 「ACOI2020」学园祭|省选-

「ACOI2020」学园祭## 题目背景秋天,是学习之秋,食欲之秋,更是,学园祭之秋!随着时间流逝,学园祭也越来越近。终于等到这一天,可是没想到在冲绳岛上邂逅到女装的渚同学的勇次竟然来了!中村 莉櫻(Nakamura Rio)见到这个情况,忙给渚同学换上女装。没办法,勇次已经来了,于是渚同学鼓起勇气迈出了第一步。(为什么自顾自地加提示框啊喂!)## 题目描述莉櫻为了利用这个人傻钱多的少爷,尽全力提高消费额,努力地暗示渚同学。没办法,于是渚同学想了一下,提出了一个问题:给出一个 $n$,定

2025-04-28 17:00:00 1285 1

本博文算法对应源码单元测试用例

电子书、博文和附录分工。电子书以总结、原理、正确性证明为主;博文(题解)以思路、源码、封装类(模板)、测试用例、流程图为主。附录:封装好的类、小题题解、很长的源码和单元测试。 本书针对读者:刚刚入职的软件工程师,假定已经学完了“C++”和“算法与数据结构基础”。工程师和学生不同,工程师的首要目标的实用。工程师用到的知识是未知的,很多都是临时用一下,之后几年甚至一辈子都不会用到。受精力的限制,不可能将所有遇到的知识全部学完。本文会有超多用例,方便工程师从最相近的样例开始修改。所以,本文先讲如何使用,再讲原理,最后讲样例;设计(如:流程图)和源码会作为附录提供。

2024-07-05

位运算、状态压缩、枚举子集汇总.html

位运算、状态压缩、枚举子集汇总.html

2024-04-27

本博客配套流程图,会经常更新

Bob 站在单元格 (0, 0) ,想要前往目的地 destination :(row, column) 。他只能向 右 或向 下 走。你可以为 Bob 提供导航 指令 来帮助他到达目的地 destination 。 指令 用字符串表示,其中每个字符: 'H' ,意味着水平向右移动 'V' ,意味着竖直向下移动 能够为 Bob 导航到目的地 destination 的指令可以有多种,例如,如果目的地 destination 是 (2, 3),"HHHVV" 和 "HVHVH" 都是有效 指令 。 然而,Bob 很挑剔。因为他的幸运数字是 k,他想要遵循 按字典序排列后的第 k 条最小指令 的导航前往目的地 destination 。k 的编号 从 1 开始 。 给你一个整数数组 destination 和一个整数 k ,请你返回可以为 Bob 提供前往目的地 destination 导航的 按字典序排列后的第 k 条最小指令 。

2024-04-24

利用二分查找解决H指数问题

利用二分查找解决H指数问题。

2024-01-01

搜索矩阵C++实现:二分查找Z形查找

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。

2023-12-17

长度最短的子数组C++实现

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 示例 2: 输入:target = 4, nums = [1,4,4] 输出:1 示例 3: 输入:target = 11, nums = [1,1,1,1,1,1,1,1] 输出:0 提示: 1 <= target <= 109 1 <= nums.length <= 105 1 <= nums[i] <= 105

2023-12-10

[二分查找双指针]LeetCode881: 救生艇

给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。

2023-12-03

两数之和 - 输入有序数组

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。 以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。 你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

2023-11-26

C++二分查找算法:132 模式

给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。

2023-11-12

C++算法:第 N 位数字原理、源码、测试用例

给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位上的数字。 示例 1: 输入:n = 3 输出:3 示例 2: 输入:n = 11 输出:0 解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是 0 ,它是 10 的一部分。 提示: 1 <= n <= 231 – 1

2023-11-05

C++二分查找算法应用:最长递增子序列 原理、源码、测试用例

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。 示例 2: 输入:nums = [0,1,0,3,2,3] 输出:4 示例 3: 输入:nums = [7,7,7,7,7,7,7] 输出:1 参数范围: 1 <= nums.length <= 2500 -104 <= nums[i] <=104

2023-10-29

二分应用:峰值查找 原理、源码、测试用例

1. 题目 长度为n的数组nums,请返回任意一峰值的索引。符合以下条件之一i便是峰值的索引。 n等于1 i等于0 n>1 i等于0 nums[i] >nums[i+1] n>1 i等于n-1 nums[i] > nums[i-1] 0<i<n-1 nums[i]>nums[i-1] nums[i]>nums[i+1] 题目保证nums[i]不等于nums[i+1]。 2. 分析 假定: nums[left,r)符合nums[left]>nums[left-1],且nums[r-1]>nums[r]。显然初始情况nums[0,n)符合。 推论一:如果[left,r)的长度为1,则left就是返回的索引。 推论二:假定left < mid<r。如果mid[mid] > mid[mid-1],则nums[mid,r)也符合假定。如果mid[mid] < mid[mid-1],则nums[left,mid)也符合假定。 推论三:推论二也可以也可以理解成分别抛弃[left,mid)和[mid,r)。令mid = left+(r-left)/2,由于r-left>=2,所以left<mid<

2023-10-22

C++算法:前缀和基础

长度为n的数组nums,共有n+1个以nums[0]开始的子数组。索引范围分别为[0,i),i取值区间[0,n]。preSum[i]记录子数组[0,i)的和。比如:nums = {1,2,3,4},则preSum = {0,1,3,6,10}。通过preSum,我们可以求任意nums的子数组和。子数组[i,j)等于子数组[0,j)减去[0,i),也就是子数组[i,j)的和等于preSum[j] – preSum[i]。如果i等于j,则preSum[i]-preSum[i],和为0,符合计算公式。如果i大于j,则非法,需要提前排除。

2023-10-15

时间复杂度O(40n*n)的C++算法:修改图中的边权

给你一个 n 个节点的 无向带权连通 图,节点编号为 0 到 n - 1 ,再给你一个整数数组 edges ,其中 edges[i] = [ai, bi, wi] 表示节点 ai 和 bi 之间有一条边权为 wi 的边。 部分边的边权为 -1(wi = -1),其他边的边权都为 正 数(wi > 0)。 你需要将所有边权为 -1 的边都修改为范围 [1, 2 * 10^9] 中的 正整数 ,使得从节点 source 到节点 destination 的 最短距离 为整数 target 。如果有 多种 修改方案可以使 source 和 destination 之间的最短距离等于 target ,你可以返回任意一种方案。 如果存在使 source 到 destination 最短距离为 target 的方案,请你按任意顺序返回包含所有边的数组(包括未修改边权的边)。如果不存在这样的方案,请你返回一个 空数组 。 注意:你不能修改一开始边权为正数的边。

2023-10-14

多源最短路径的原理及C++实现

当一层循环执行完后,m_vMat[i1][i2]表示经过[0,i)中的任意个点的最短距离。 初始状态下, m_vMat[i1][i2]表示直达的最小距离,也就是经过0个点。 通过[0,i)中任意个点,i1到i2的最短路径记为PrePathi1i2,通过[0,i+1)中任意个点,i1到i2的距离的路径为Pathi1i2,如果Path不经过Pathi1i2,则和PrePathi1i2相同。如果经过则可以拆分成{i1…i}+{i…i2},显然{i1…i}是PrePathi1i,{i…i2}是PrePathii2,否则替换成PrePathi1i和PrePathii2。 m_vMat同时表示PreMath和Math,如果m_vMat[i1][i]或m_vMat[i][i2]已经更新,会带来错误的结果么?结果是不会,会更新但值不变。 当i1等于i时: m_vMat[i][i2] = min(…, m_vMat[i][i] + m_vMat[i][i2]); 由于m_vMat[i][i]为0,所以右式就是左式。 当i2等于i时,类似。

2023-10-04

堆优化迪氏最短单源路径原理及C++实现

4.1. 时间复杂度 O(ElogE),E是边数。适用与稀疏图。 4.2. 使用前提 边的权为正。可以非连通,非连通的距离为-1。 4.3. 原理 优选队列(小根堆)记录两个数据:当前点到源点距离,当前点。先处理距离小的点;如果距离相等,先处理谁都可以。可以用pair记录,不用重写小于。优先队列只记录如下情况的距离: 一,{0,源点}。 二,任意点的最短距离和可以直达的边。 如果是有向图,则入队数量等于边数,计算出起点最短路径的那一轮。无向图,则翻倍。显然出队数量等于入队数量。优先队列入队和出队时间复杂度都是O(logn),故总时间复杂度为O(nlogn)。

2023-10-03

.有向图计数优化版原理及C++实现

不需要拓扑排序,也不需要并集查找,直接dfs了。完成以下三个职责: 一,DFS那些端点在环上。 二,DFS环上各点此环的长度。 三,DFS非环上各点。

2023-10-02

有向图访问计数的原理及C++实现

现有一个有向图,其中包含 n 个节点,节点编号从 0 到 n - 1 。此外,该图还包含了 n 条有向边。 给你一个下标从 0 开始的数组 edges ,其中 edges[i] 表示存在一条从节点 i 到节点 edges[i] 的边。 想象在图上发生以下过程: 你从节点 x 开始,通过边访问其他节点,直到你在 此过程 中再次访问到之前已经访问过的节点。 返回数组 answer 作为答案,其中 answer[i] 表示如果从节点 i 开始执行该过程,你可以访问到的不同节点数。 2 <= n <= 100000 无自环。

2023-10-01

朴素迪氏最短单源路径的原理及C++源码及测试用例

Dijkstra算法,翻译为迪杰斯特拉或狄克斯特拉。在下驽钝,记不住如此长的翻译,故简称迪氏。 3.1.时间复杂度 O(n2),端点数的平方。 3.2.使用前提 边的权为正。可以非连通,非连通的距离为-1。

2023-09-30

01BFS最短距离原理和C++实现

n个端点的无向图,编号范围[0,n)。Edges0表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有路联接。Edges1表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有损坏的路连接。要想让s和d之间至少有一条通道,最小需要维修多少条路。如果无法到达,请返回-1。可能有环,但无自环,重边,可能不联通。

2023-09-29

深度优先搜索(BFS)的原理和C++实现

n个端点的无向图,编号范围[0,n)。每个端点最多4条出边。edges表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有边联接。求s到d的最少需要经过多少条边。如果无法到达,请返回-1。可能有环,但无自环,重边,可能不联通。

2023-09-28

美丽塔单调栈O(n)解法

给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的: 1 <= heights[i] <= maxHeights[i] heights 是一个 山状 数组。 如果存在下标 i 满足以下条件,那么我们称数组 heights 是一个 山状 数组: 对于所有 0 < j <= i ,都有 heights[j - 1] <= heights[j] 对于所有 i <= k < n - 1 ,都有 heights[k + 1] <= heights[k] 请你返回满足 美丽塔 要求的方案中,高度和的最大值 。

2023-09-27

较难算法: 美丽塔 时间复杂度O(nlongn)

给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的: 1 <= heights[i] <= maxHeights[i] heights 是一个 山状 数组。 如果存在下标 i 满足以下条件,那么我们称数组 heights 是一个 山状 数组: 对于所有 0 < j <= i ,都有 heights[j - 1] <= heights[j] 对于所有 i <= k < n - 1 ,都有 heights[k + 1] <= heights[k] 请你返回满足 美丽塔 要求的方案中,高度和的最大值 。

2023-09-24

让数组不相等的最小总代价

让数组不相等的最小总代价 可运行源码,VS2022 C++17 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都为 n 。每次操作中,你可以选择交换 nums1 中任意两个下标处的值。操作的 开销 为两个下标的和。你的目标是对于所有的 0 <= i <= n - 1 ,都满足 nums1[i] != nums2[i] ,你可以进行 任意次 操作,请你返回达到这个目标的 最小 总代价。请你返回让 nums1 和 nums2 满足上述条件的 最小总代价 ,如果无法达成目标,返回 -1 。

2023-09-23

喜缺全书算法册 C++实现

电子书和博文的分工。电子书以:原理、正确性证明、总结为主;博文(题解)以思路、源码、封装类(模板)、测试用例、流程图为主。 当前阶段:以二分查找为主,前缀和为辅,之后会有其它算法的。文字算法见我的博文,视频算法见我的学院课程。 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都为 n 。每次操作中,你可以选择交换 nums1 中任意两个下标处的值。操作的 开销 为两个下标的和。你的目标是对于所有的 0 <= i <= n - 1 ,都满足 nums1[i] != nums2[i] ,你可以进行 任意次 操作,请你返回达到这个目标的 最小 总代价。请你返回让 nums1 和 nums2 满足上述条件的 最小总代价 ,如果无法达成目标,返回 -1 。 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的:

2023-09-17

二分查找旋转数组源码和视频

包括视频和三个版本的源码(初始、寻找右数组左边界、完成) 已知整数数组nums,先按升序排序后,再旋转。旋转k位后,元素分别为nums[k],nums[k+1]...nums[0]...nums[k-1]。请查找target 是否存在,如果存在返回所在索引;否则返回-1。假定nums没有重复的元素。 假定排序后的数组为{1,2,3,4,5}。 旋转0位:不变。 旋转1位:{2,3,4,5,1} 旋转2位:{3,4,5,1,2} 旋转3位:{4,5,1,2,3} 旋转4位:{5,1,2,3,4} 1.解题思路 观察后,可以得到如下结论: 旋转数组,可以拆分成左右两个升序数组,且左数组的任意元素都大于右数组的任意元素。 分两步: 一,找到数组的分界线RBegin,[0,RBegin)是左数组,[RBegin,n)是右数组。特殊情况:只有一个升序数组,则RBegin为0,左数组为空。 如果是小于等于nums.back(),在右边找;否则在左边找。升序寻找元素之前已经讲过了,就不累赘了。

2023-08-20

喜缺全书之平凡的经历最新版

《闻缺陷则喜》这本书由何志丹与魏家瑜共同创作,其核心理念是通过暴露和面对问题,促进个人和团队的成长。书名源于作者们对于缺陷的积极态度,他们认为缺陷是学习和进步的契机,而不是阻碍。在当前知识爆炸的时代,分享和交流成为提升效率的关键。 书中涵盖的工作经历部分,作者强调了工作中遇到的挑战和陷阱,这些经历不仅对于技术开发者,如C/C++/VC程序员,具有宝贵的参考价值,也适用于任何行业。作者提到,许多工作中需要但网络上难以找到的信息,正是他们书籍想要填补的知识空白。他们提倡通过阅读、实践和再传授来深化理解和掌握知识,比如,通过反复阅读多本书籍,甚至制作教学视频,以教促学。 生活中的点滴和女儿的成长部分,反映了作者对个人生活和家庭教育的关注。这部分内容可能包含如何平衡工作与家庭,以及如何培养孩子独立思考和解决问题的能力。作者的人生态度和教育观念,可能会给读者提供关于如何在生活中学习和成长的新视角。 投资理财的亏损与教训部分,则揭示了作者在财务管理和投资上的经验和反思。他们可能分享了投资失败的案例,从中提炼出的教训,旨在帮助读者避免同样的错误,提高投资决策的明智程度。这部分内容对于希望提升理

2023-08-18

《闻缺陷则喜》之《主册》

闻缺陷则喜 1 第一章:平凡的经历 5 第二章:观念与想法 5 1. 基础 6 1.1. 认知鸿沟 6 2. 传播 6 3. 沟通 6 3.1. 淡化对错 6 3.2. 不要随意批评别人 6 3.3. 参与感 6 3.4. 如果错了,马上认错 7 3.5. 从别人的立场说服对方 7 3.6. 具体到场景 7 4. 交往与合作 7 4.1. 双赢思维 7 4.2. 合作层次 8 4.3. 能力+信息(情报)+资源=成就 8 5. 工作相关 8 5.1. 金融骗局 8 5.2. 对小白而言创业比股票危险的多 9 5.3. 投资比创业稳妥的多 9 5.4. 程序员干不到30岁 9 5.5. 忠诚度与能力 10 5.6. 拒绝无意义加班 10 5.7. 内卷的历史 11 5.8. 关于社保 11 6. 家庭相关 12 6.1. 我的遗产 12 6.2. 金钱观 12 6.3. 借贷观 13 6.4. 女儿的婚姻 13 6.5. 轶事 14 6.6. 生育观 15 6.7. 教育观 15 6.8. 不要因为担心亲友不舒服,而不指出错误 16 7. 工作技巧 16 7.1. 八二原理 16 8.

2022-09-10

C# 获取C++的连续数据

C# 获取C++的连续数据。 两种方式:1,返回C++指针,2,将值存到C#的数组中。

2022-04-02

闻缺陷则喜版本号20220123

包括:问题定义、系统分析、架构、概要设计、详细设计、测试等!

2022-01-23

闻缺陷则喜2021年12月26.doc

闻缺陷则喜,本人拙作,注将软件工程。

2021-12-26

闻缺陷则喜20211205

包括:问题定义、系统分析、架构、概要设计、详细设计、测试等!

2021-12-07

关于halcon膨胀腐蚀开闭.doc

关于halcon膨胀腐蚀开闭

2021-11-14

简单的C#类 生成对应的C#类

开发工具: C#2013 功能: 针对简单的C#类,生成对应的非托管C++类,并生成托管C++的转换函数。 应用场景: 界面层、数据层C#,逻辑层C++。 简单的C#类:类型只包括 double string List

2021-11-07

Windows性能监控工具Perfmon使用

Windows性能监控工具Perfmon使用

2021-10-31

保存文件的同时删除文件,保存用时会略微升高

保存文件的同时删除文件,保存用时会略微升高。没必要花大功夫专门处理 保存500文件用时(毫秒):30906 删除文件同时,保存500文件用时(毫秒):30263 删除500文件用时(毫秒):363 保存500文件用时(毫秒):29155 删除文件同时,保存500文件用时(毫秒):29258 删除500文件用时(毫秒):426 保存500文件用时(毫秒):27992 删除文件同时,保存500文件用时(毫秒):29068 删除500文件用时(毫秒):686 保存500文件用时(毫秒):29172 删除文件同时,保存500文件用时(毫秒):31837 删除500文件用时(毫秒):337 保存500文件用时(毫秒):29373 删除文件同时,保存500文件用时(毫秒):29563 删除500文件用时(毫秒):321 保存500文件用时(毫秒):29663 删除文件同时,保存500文件用时(毫秒):30180 删除500文件用时(毫秒):350

2021-10-11

闻缺陷则喜2021九月版

主要增加:C#调用托管C++,托管C++调用C++

2021-09-11

多线程样例一 读写参数文件

事情起因: 修改配置后,C++函数取读配置xml时,相机缓存满了而引起崩溃。几率发生。 解决思路: 读文件费时间,所以开一个线程读文件。 抽象后的类似demo: 假定读文件需要0.6秒,图像处理(用存文件代替)需要0.5秒,各执行100次。 类和函数 读取文件函数: 一,List<int>增加本序号(0开始)。 二,随机生成5000整数,加到list<int>中。 三,写文件(文件名为序号,如0.txt),文件夹File。 四,Sleep(600)。 五,记录日志:本函数开始执行 时间,结束时间,序号。 六,复制List<int>到参数。 模拟图像处理函数: 一,复制参数 二,参数保存到文件,文件名list<int>第一个int,文件夹img。 三,Sleep(500)。 六,记录日志:本函数开始执行 时间,结束时间,序号。 参数类(跨线程): 一,从list<int>复制参数。 二,复制数据到list<int>。 线程: 启动线程“读取参数”线程:执行100次 读取参数功能。 启动线程“模拟图像处理”线程:执行100次 模拟图像处理。 运行预期结果: File文件夹中有0到100共101个文件。 img有约80个文件。 img有的文件,File文件夹中一定有,且完全相同。用文件夹比较工具(如:BCompare)查看。 查看日志:“读取参数”线程约60秒完成,模拟图像处理”线程约50秒完成。

2021-09-09

C#调用C++的类和函数

C#直接调用C++的函数,C#调用托管C++,C++托管调用非托管C++

2021-08-31

《闻缺陷则喜》之《软件开发的那些人》 20230917

软件团队的那些人(理论) 4 1. 引言 5 1.1. 你的灯开着么? 5 1.2. 货车过山洞 5 1.3. 软件维护之痛 5 2. 软件过程与思想 6 2.1. 基础 6 2.2. 过程模型 12 2.3. 敏捷开发 14 2.4. 编程范式 15 2.5. 工具 16 3. 问题定义 18 3.1. 基础 18 3.2. 过滤概念(可行性分析) 20 3.3. 用户细分 22 3.4. 模式 22 4. 系统分析 23 4.1. 基础 24 4.2. 用户画像 25 1.1 RFM模型 25 4.3. 需求收集与整理 25 4.4. 系统分析 26 5. 架构设计 26 5.1. 开发期质量 26 5.2. 运行期质量 28 5.3. 沟通 35 5.4. 架构内容 36 5.5. 架构模式 38 5.6. 关于重构 39 5.7. 其它 42 6. 概要设计 44 6.1. 设计模式六大原则 44 6.2. 设计模式 45 6.3. 反模式 46 6.4. 模块划分、公共数据、资源设计、接口 46 6.5. 界面设计 49 6.6. 数据存储设计 49 6.7. 工时预估与工作

2021-08-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除