【数学 逆序对 构造】P12386 [蓝桥杯 2023 省 Python B] 混乱的数组|普及+
本文涉及知识点
数学 构造
P12386 [蓝桥杯 2023 省 Python B] 混乱的数组
题目描述
给定一个正整数 x x x,请找出一个尽可能短的仅含正整数的数组 A A A 使得 A A A 中恰好有 x x x 对 i , j i, j i,j 满足 i < j i < j i<j 且 A i > A j A_i > A_j Ai>Aj。
如果存在多个这样的数组,请输出字典序最小的那个。
输入格式
输入一行包含一个整数表示 x x x。
输出格式
输出两行。
第一行包含一个整数 n n n,表示所求出的数组长度。
第二行包含 n n n 个整数 A i A_i Ai,相邻整数之间使用一个空格分隔,依次表示数组中的每个数。
输入输出样例 #1
输入 #1
3
输出 #1
3
3 2 1
说明/提示
评测用例规模与约定
- 对于 30 % 30\% 30% 的评测用例, x ≤ 10 x \leq 10 x≤10;
- 对于 60 % 60\% 60% 的评测用例, x ≤ 100 x \leq 100 x≤100;
- 对于所有评测用例, 1 ≤ x ≤ 10 9 1 \leq x \leq 10^9 1≤x≤109。
数量 逆序对
性质一:长度为n的数组,逆序最多 m n = n × ( n − 1 ) 2 mn=\frac{n \times (n-1)}{2} mn=2n×(n−1),整个数组逆序。 m n 0 = 0 , m n i = m n i − 1 + n − 1 mn_0=0,mn_i=mn_{i-1}+n-1 mn0=0,mni=mni−1+n−1
性质二:存在逆序对(i,j),则一定存在相邻逆序对。如果{i,i+1},{i+1,i+2} ⋯ \cdots ⋯ {j-1,j}都不是逆序对,则(i,j)也不是逆序对。
性质三:1到n排列,通过调整顺序,可以让逆序对为[0,mn]的任意数。选择任意相邻逆序对交换,逆序对减1。
性质四:长度为n的数字,x1是A[0]和其它数字的逆序对数量;x2是A[1…n-1]之间的逆序对数量。x2一定是 ( n − 1 ) × ( n − 1 ) 2 \frac{(n-1)\times (n-1)}{2} 2(n−1)×(n−1)。
A[0]=A[1…N-1]最小的x1个数的最大值+1。 x2++,有如下方式:a,交换顺序。b,某个数变小。c,某个数变大。x2++,意味着x1–。
无论那种方式A[0]只会变小或不变,不会变大。故A[1…N-1] 是N-1到1的逆序。
通过i从0到N-1枚举A[i],A[0…i-1]已经确定, A[i+1…] 是[1,N-i+1]的逆序。
细节
数组分三部分
前缀A[0…i-1]:内部的逆序对直接从x减掉。cnt[i]记录前缀中大于等于i的数量
当前A[i]。
后缀:一定是 r e m a i n ∼ 1 remain \sim 1 remain∼1,remain=len-i-1
presum记录前后缀简单的逆序对。先暴力枚举,再优化。
枚举A[i]的值。
时间复杂度:O(nnn)
性质优化
l e n ≈ x len \approx \sqrt x len≈x
cnt[i]记录前缀中大于等于i的数量。对应差分数组是diff。则A[i]选择为x,则cnt[x…len]++,即diff[x]++。
这样可以在 log l e n \log len loglen的时间内,区间修改cnt,单点查询。cnt[cur+1]就是当前值选择cur,当前和前缀的逆序对。
[1…remain]和前缀构成的逆序对数量:
cnt2[i] = cnt[i]*i
则后缀和前缀组成的逆序对:
c n t 2 [ c u r + 1.... ] − c n t [ c u r + 1... ] ∗ c u r cnt2[cur+1....]-cnt[cur+1...]*cur cnt2[cur+1....]−cnt[cur+1...]∗cur
cnt2也用树状数组实现。
时间复杂度: O ( l e n l o g l e n l o g l e n ) O(len loglen loglen) O(lenloglenloglen)
此算法错误
以上性质,只有 i = = 0 i==0 i==0是成立。比如:111111?11 优化111111?21
新解法
性质一: A [ 0 ] ≠ 1 A[0]\neq1 A[0]=1,否则A[0]为0,不会和任意数产生逆序对。直接删除,更短。
** 性质二**:如果 A [ i ] ≥ A [ i + 1 ] A[i] \ge A[i+1] A[i]≥A[i+1]则所有 A [ j ] ≤ A [ j + 1 ] , i + 1 < j A[j] \le A[j+1],i+1<j A[j]≤A[j+1],i+1<j。假定 A [ i 1 ] ≤ A [ i 1 + 1 ] A[i1]\le A[i1+1] A[i1]≤A[i1+1]不会成立。则交换 A [ i ] , s [ i + 1 ] A[i],s[i+1] A[i],s[i+1]逆序减1,交换A[j]和s[j+1]逆序对+1 。逆序对不变,字典序变小。
性质三: s [ i ] > s [ i + 1 ] < s [ i + 2 ] s[i]> s[i+1] < s[i+2] s[i]>s[i+1]<s[i+2]不成立。
情况a:a[i] > s[i+2]。如:312。321,逆序对++;231,逆序对–。逆序数不变,字典序更小。
情况b,a[i] < s[i+2]。如:213。123,逆序对–。132,逆序对++。逆序数不变,字典序更小。
情况c, s [ i ] = = s [ i + 2 ] s[i]==s[i+2] s[i]==s[i+2]如:212。 ????待证。
结论一:如果s[i]<s[i+1],s[0…i]严格不减。
性质四: A [ 0 ] < A [ 1 ] < A [ 2 ] A[0] <A[1] <A[2] A[0]<A[1]<A[2]
正确解法
从新开始。
性质一:长度为n的数组,逆序最多 m n = n × ( n − 1 ) 2 mn=\frac{n \times (n-1)}{2} mn=2n×(n−1),整个数组逆序。 m n 0 = 0 , m n i = m n i − 1 + n − 1 mn_0=0,mn_i=mn_{i-1}+n-1 mn0=0,mni=mni−1+n−1
性质二:存在逆序对(i,j),则一定存在相邻逆序对。如果{i,i+1},{i+1,i+2} ⋯ \cdots ⋯ {j-1,j}都不是逆序对,则(i,j)也不是逆序对。
用f(i)代替 m m i mm_i mmi。
求最小f(n) >= x。
性质三:如果 x = = f ( n ) x == f(n) x==f(n)。1到n的全排列逆序。
性质四:无论是否有重复的数字,逆序能得到最多的逆序对。存在一组重复2次的数字,逆序数减1。一组重复3次的数组,逆序对减少3。存在一组重复m次的数字,逆序对减少m-1次。
性质五: f ( n ) − f ( n − 1 ) = n − 1 f(n)-f(n-1)=n-1 f(n)−f(n−1)=n−1我们以f(n)为基础,减少y=f(n)-x。 x ≥ f ( n − 1 ) ,故 y ∈ [ 0 , n − 2 ] x \ge f(n-1),故y\in[0,n-2] x≥f(n−1),故y∈[0,n−2]
A [ 0 ] ≥ n − y A[0] \ge n-y A[0]≥n−y 小于此值逆序对小于x。降低A[i]的值到<A[0],(A[0],A[i])成为新逆序对。根根据性质四,A[1…n]的逆序对减1。
推论:A降序,如果 A [ i ] = = A [ i − 1 ] , A [ i − 1 ] ≠ A [ i − 2 ] A[i]==A[i-1],A[i-1]\neq A[i-2] A[i]==A[i−1],A[i−1]=A[i−2]可以将A[i]赋值为A[i-2],逆序对不变。字典序变小。
x=10为例:5 4 3 2 1。
x=9:4 3 2 1 1,逆序对减1。
x=8:3 2 2 1 1,逆序对减1。
如果n是奇数,可以减少 ⌊ n / 2 ⌋ \lfloor n/2 \rfloor ⌊n/2⌋
如果是偶数,可以减少 n / 2 n/2 n/2次
以x=15为例:
654321 → 543211 → 432211 → 332211 654321\rightarrow 543211 \rightarrow 432211 \rightarrow332211 654321→543211→432211→332211
性质六: x > g e ⌊ n / 2 ⌋ \large x >ge \lfloor n/2 \rfloor x>ge⌊n/2⌋
x = 23为例。
24: 4 4 3 3 2 2 1 1
将A[0]改成3,变成 34332211 3 4 3 3 2 2 11 34332211
3 4 3 3 ,逆序对减少2。A[1…n]已经是逆序,无法通过调整顺序增加逆序,只能减少重复数字。即:3433变成543。
即:**:23: 3 5 4 3 2 2 1 1
分析:x = 22
A[0]改成2,后面的2个2重复,减少2个逆序对。增加一个逆序只能:
5432全部+1,减少一个重复。
总结:
A [ 0 ] = n − ( f ( n ) − x ) , f ( n ) − x 的取值范围 [ 0 , n − 2 ] A[0]=n-(f(n)-x),f(n)-x的取值范围[0,n-2] A[0]=n−(f(n)−x),f(n)−x的取值范围[0,n−2]故 A [ 0 ] 的取值范围 n ∼ 2 A[0]的取值范围n \sim 2 A[0]的取值范围n∼2
如果 A [ 0 ] ≥ n 2 , y = n − A [ 0 ] A[0]\ge \frac n 2,y=n -A[0] A[0]≥2n,y=n−A[0]从后到前, 2 个 1 , 2 个 2 ⋯ 2 个 y 2个1,2个2\cdots 2个y 2个1,2个2⋯2个y 1 个 y + 1 , 1 个 y + 2 ⋯ A [ 0 ] 1个y+1,1个y+2 \cdots A[0] 1个y+1,1个y+2⋯A[0]
否则, 2 个 A [ 0 ] 2 个 A [ 0 ] − 1 ⋯ 2 个 1 ,令 z = n − 2 A [ 0 ] 否则,2个A[0] 2个A[0]-1\cdots 2个1,令z = n - 2A[0] 否则,2个A[0]2个A[0]−1⋯2个1,令z=n−2A[0]两个A[0]之间插入 A [ 0 ] + z , A [ 0 ] + z − 1 ⋯ A [ 0 ] + 1 A[0]+z,A[0]+z-1 \cdots A[0]+1 A[0]+z,A[0]+z−1⋯A[0]+1
代码
核心代码
#include <iostream>
#include <sstream>
#include <vector>
#include<map>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<string>
#include<algorithm>
#include<functional>
#include<queue>
#include <stack>
#include<iomanip>
#include<numeric>
#include <math.h>
#include <climits>
#include<assert.h>
#include<cstring>
#include<list>
#include<array>#include <bitset>
using namespace std;template<class T1, class T2>
std::istream& operator >> (std::istream& in, pair<T1, T2>& pr) {in >> pr.first >> pr.second;return in;
}template<class T1, class T2, class T3 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t);return in;
}template<class T1, class T2, class T3, class T4 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3, T4>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t) >> get<3>(t);return in;
}template<class T1, class T2, class T3, class T4, class T5, class T6, class T7 >
std::istream& operator >> (std::istream& in, tuple<T1, T2, T3, T4,T5,T6,T7>& t) {in >> get<0>(t) >> get<1>(t) >> get<2>(t) >> get<3>(t) >> get<4>(t) >> get<5>(t) >> get<6>(t);return in;
}template<class T = int>
vector<T> Read() {int n;cin >> n;vector<T> ret(n);for (int i = 0; i < n; i++) {cin >> ret[i];}return ret;
}
template<class T = int>
vector<T> ReadNotNum() {vector<T> ret;T tmp;while (cin >> tmp) {ret.emplace_back(tmp);if ('\n' == cin.get()) { break; }}return ret;
}template<class T = int>
vector<T> Read(int n) {vector<T> ret(n);for (int i = 0; i < n; i++) {cin >> ret[i];}return ret;
}template<int N = 1'000'000>
class COutBuff
{
public:COutBuff() {m_p = puffer;}template<class T>void write(T x) {int num[28], sp = 0;if (x < 0)*m_p++ = '-', x = -x;if (!x)*m_p++ = 48;while (x)num[++sp] = x % 10, x /= 10;while (sp)*m_p++ = num[sp--] + 48;AuotToFile();}void writestr(const char* sz) {strcpy(m_p, sz);m_p += strlen(sz);AuotToFile();}inline void write(char ch){*m_p++ = ch;AuotToFile();}inline void ToFile() {fwrite(puffer, 1, m_p - puffer, stdout);m_p = puffer;}~COutBuff() {ToFile();}
private:inline void AuotToFile() {if (m_p - puffer > N - 100) {ToFile();}}char puffer[N], * m_p;
};template<int N = 1'000'000>
class CInBuff
{
public:inline CInBuff() {}inline CInBuff<N>& operator>>(char& ch) {FileToBuf();while (('\r' == *S) || ('\n' == *S) || (' ' == *S)) { S++; }//忽略空格和回车ch = *S++;return *this;}inline CInBuff<N>& operator>>(int& val) {FileToBuf();int x(0), f(0);while (!isdigit(*S))f |= (*S++ == '-');while (isdigit(*S))x = (x << 1) + (x << 3) + (*S++ ^ 48);val = f ? -x : x; S++;//忽略空格换行 return *this;}inline CInBuff& operator>>(long long& val) {FileToBuf();long long x(0); int f(0);while (!isdigit(*S))f |= (*S++ == '-');while (isdigit(*S))x = (x << 1) + (x << 3) + (*S++ ^ 48);val = f ? -x : x; S++;//忽略空格换行return *this;}template<class T1, class T2>inline CInBuff& operator>>(pair<T1, T2>& val) {*this >> val.first >> val.second;return *this;}template<class T1, class T2, class T3>inline CInBuff& operator>>(tuple<T1, T2, T3>& val) {*this >> get<0>(val) >> get<1>(val) >> get<2>(val);return *this;}template<class T1, class T2, class T3, class T4>inline CInBuff& operator>>(tuple<T1, T2, T3, T4>& val) {*this >> get<0>(val) >> get<1>(val) >> get<2>(val) >> get<3>(val);return *this;}template<class T = int>inline CInBuff& operator>>(vector<T>& val) {int n;*this >> n;val.resize(n);for (int i = 0; i < n; i++) {*this >> val[i];}return *this;}template<class T = int>vector<T> Read(int n) {vector<T> ret(n);for (int i = 0; i < n; i++) {*this >> ret[i];}return ret;}template<class T = int>vector<T> Read() {vector<T> ret;*this >> ret;return ret;}
private:inline void FileToBuf() {const int canRead = m_iWritePos - (S - buffer);if (canRead >= 100) { return; }if (m_bFinish) { return; }for (int i = 0; i < canRead; i++){buffer[i] = S[i];//memcpy出错 }m_iWritePos = canRead;buffer[m_iWritePos] = 0;S = buffer;int readCnt = fread(buffer + m_iWritePos, 1, N - m_iWritePos, stdin);if (readCnt <= 0) { m_bFinish = true; return; }m_iWritePos += readCnt;buffer[m_iWritePos] = 0;S = buffer;}int m_iWritePos = 0; bool m_bFinish = false;char buffer[N + 10], * S = buffer;
};class Solution {
public:vector<int> Ans(int x) {vector<int> mn(1);while (mn.back() < x) {mn.emplace_back(mn.size() - 1 + mn.back());}const int len = mn.size() - 1;int y = mn.back() - x;vector<int> ans;int a0 = len - y;if (2 * a0 >= len) {for (int i = a0; i > 0; i--) {ans.emplace_back(i);if (i <= len - a0) {ans.emplace_back(i);}}}else {for (int i = a0; i > 0; i--) {ans.emplace_back(i);ans.emplace_back(i);}vector<int> tmp;for (int i = len - 2 * a0; i > 0; i--) {tmp.emplace_back(a0 + i);}ans.insert(ans.begin() + 1, tmp.begin(), tmp.end());}return ans;}
};int main() {
#ifdef _DEBUGfreopen("a.in", "r", stdin);
#endif // DEBUG ios::sync_with_stdio(0); cin.tie(nullptr);//CInBuff<> in; COutBuff<10'000'000> ob; /*for (int x = 1; x <= 28; x++) {cout << x << ":";auto res = Solution().Ans(x);for (const auto& i : res) {cout << i << " ";}cout << "\n";}*/int x;cin >> x;
#ifdef _DEBUG //printf("iH=%d,iA=%d,H=%d,dA=%d",iH,iA,H,dA);//Out(C, ",C=");//Out(edge, ",edge="); /*Out(que, ",que=");*///Out(ab, ",ab=");//Out(par, "par=");//Out(que, "que=");//Out(B, "B=");
#endif // DEBUG auto res = Solution().Ans(x);cout << res.size() << "\n";for (const auto& i : res) { cout << i << " "; }return 0;
};
相关文章:
【数学 逆序对 构造】P12386 [蓝桥杯 2023 省 Python B] 混乱的数组|普及+
本文涉及知识点 数学 构造 P12386 [蓝桥杯 2023 省 Python B] 混乱的数组 题目描述 给定一个正整数 x x x,请找出一个尽可能短的仅含正整数的数组 A A A 使得 A A A 中恰好有 x x x 对 i , j i, j i,j 满足 i < j i < j i<j 且 A i > A j A_…...

Excel 批量下载PDF、批量下载考勤图片——仙盟创梦IDE
在办公场景中,借助应用软件实现 Excel 批量处理考勤图片、电子文档与 PDF,具有诸多显著优势。 从考勤图片处理来看,通过 Excel 批量操作,能快速提取图片中的考勤信息,如员工打卡时间、面部识别数据等,节省…...

PCIe-Error Detection(一)
下表为PCIe协议中给出的错误: 一、可纠正错误(Correctable Errors,8种) 检错机制 错误名称检测层级触发条件Receiver ErrorPhysical接收端均衡器(EQ)监测到…...

向量空间的练习题目
1.考虑 中的向量x1 和x2 求每一向量的长度 令x3x1x2,求x3的长度,它的长度与x1和x2的和有什么关系? 2.重复练习1,取向量 3.令C为复数集合,定义C上的加法为 (abi)(cdi)(ac)(bd)i 并定义标量乘法为对所有实数a (abi) a bi 证明&…...

Leetcode 2123. 使矩阵中的 1 互不相邻的最小操作数
1.题目基本信息 1.1.题目描述 给你一个 下标从 0 开始 的矩阵 grid。每次操作,你可以把 grid 中的 一个 1 变成 0 。 如果一个矩阵中,没有 1 与其它的 1 四连通(也就是说所有 1 在上下左右四个方向上不能与其他 1 相邻)&#x…...

MySQL高可用集群
https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html 1 什么是MySQL高可用集群 MySQL高可用集群:MySQL InnoDB ClusterInnoDB Cluster是MySQL官方实现高可用读写分离的架构方案,包含以下组件 MySQL Group Replication:简…...

day14 leetcode-hot100-27(链表6)
21. 合并两个有序链表 - 力扣(LeetCode) 1. 暴力法 思路 创建一个空节点,用来组装这两个链表,谁小谁就是下一个节点。 知识 创建空节点:ListNode n1 new ListNode(-1); 具体代码 /*** Definition for singly-l…...

YOLOv5 :训练自己的数据集
- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/rnFa-IeY93EpjVu0yzzjkw) 中的学习记录博客** - **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)** 我们接着上一篇文章配置完YOLOv5需要的环境后&#…...

flutter项目迁移空安全
重中之重 备份好项目文件,甚至连已经加载好的flutter库也可以备份。环境包升级 2.1 不要直接换成flutter:3.0以上的版本,这样做既有基本的库兼容问题,又有空安全下的语法问题(整个项目中需要增加 late、?、!的语法错误,一片报错的…...
vue element日期范围选择器只能选择指定天数内的
<el-date-pickerv-model"dateRange"type"daterange"range-separator"至"start-placeholder"开始日期"end-placeholder"结束日期"format"yyyy-MM-dd"value-format"yyyy-MM-dd"clearable:picker-optio…...
从 AMQP 到 RabbitMQ:核心组件设计与工作原理(二)
五、RabbitMQ 工作原理全揭秘 在深入了解了 RabbitMQ 的核心组件之后,接下来让我们深入探究 RabbitMQ 的工作原理,揭开其在消息生产、投递、消费以及可靠性保障等方面的神秘面纱。 5.1 消息生产与投递流程 建立连接与信道:生产者首先通过 …...

MySql(十二)
目录 MySql约束 1.添加主键约束 语法格式 1)创建一个带主键的表 查看表结构 2)创建表的时候指定主键名称 查看表结构 3)创建一个表然后,然后再使用alter为列添加主键 查看表结构 4)为表添加数据 1---正常数据 2---主键…...

51c视觉~3D~合集3
我自己的原文哦~ https://blog.51cto.com/whaosoft/13954440 #SceneTracker 在4D时空中追踪万物!国防科大提出首个长时场景流估计方法 本篇分享 TPAMI 2025 论文SceneTracker: Long-term Scene Flow Estimation Network,国防科大提出首…...
windows11安装编译QtMvvm
windows11安装编译QtMvvm 1 从github下载代码2 官方的Download/Installtion3 自行构建编译QtMvvm遇到的问题3.1 `qmake`问题执行命令报错原因分析qmake报错:找不到编译器 cl解决方案3.2 `make qmake_all`问题执行命令报错原因分析make命令未识别解决方案3.3 缺少`perl`问题执行…...

【2025年电工杯数学建模竞赛A题】光伏电站发电功率日前预测问题+完整思路+paper+源码
本人7年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我 本题主要涉及数据预测,数据分析,机器学习,时间序列等知识 1.问题背景与问题描述 2.解题思路分析 …...

OpenCv高阶(十九)——dlib关键点定位
文章目录 一、什么是人脸关键点定位?二、关键点模型的下载及关键信息的理解三、dlib关键点定位的简单实现(1)导入必要的库(2)从指定路径读取图像文件(3)创建dlib的正面人脸检测器对象࿰…...

BUUCTF之[ACTF2020 新生赛]BackupFile
打开环境就一句话 找出源文件! 结合题目名字:BackupFile 先用dirsearct扫描网站文件 发现一个index.php.bak ,拼接url下载 打开发现php代码 <?php include_once "flag.php";if(isset($_GET[key])) {$key $_GET[key];if(!is_numeric($key)) {exit…...

头歌之动手学人工智能-Pytorch 之autograd
目录 第1关:Variable 任务描述 编程要求 测试说明 没有伟大的愿望,就没有伟大的天才。——巴尔扎克开始你的任务吧,祝你成功! 第2关:Variable 属性 任务描述 编程要求 测试说明 真正的科学家应当是个幻想家&a…...
OIer常用的软件
前言 现在许多软件的官网多不好找,所以我今天就将常用的一些软件官网地址翻了出来,并简单介绍了他的用法。 正文 1.DEV-C DEV-C 用途:c编译软件,是OIer的生涯之路的必备软件 2.Katex KATex 用途:展现公式的软件&…...
Centos7.x内网环境Jenkins前端打包环境配置
Centos7.x内网环境Jenkins前端打包环境配置 参考地址: https://www.cnblogs.com/guangdelw/p/18763336 https://2048.csdn.net/682c1be8606a8318e857d687.html 前言:环境描述和目标 最近公司新接了一个项目,要求是:需要再桌面…...

Kafka集成Flume/Spark/Flink(大数据)/SpringBoot
Kafka集成Flume Flume生产者 ③、安装Flume,上传apache-flume的压缩包.tar.gz到Linux系统的software,并解压到/opt/module目录下,并修改其名称为flume Flume消费者 Kafka集成Spark 生产者 object SparkKafkaProducer{def main(args:Array[S…...

Scratch节日 | 拯救屈原 | 端午节
端午节快乐! 这款特别为端午节打造的Scratch游戏 《拯救屈原》,将带你走进古代中国,感受历史与文化的魅力! 🏮 游戏介绍 扮演勇敢的探险者,穿越时空回到古代,解锁谜题,完成任务&…...

rabbitmq Direct交换机简介
在实际开发中,需求可能变得复杂,如消息的收发和处理。以支付系统为例,成功支付后需要改变订单状态并通知用户,而失败则不需要。为处理这种情况,提出了使用Direct交换机,它可以根据规则将消息路由到指定队列…...

Git实战--基于已有分支克隆进行项目开发的完整流程
Git克隆项目开发流程 ✅ 一、完整流程概述✅ 二、详细操作步骤Step 1:克隆仓库(如果尚未克隆)Step 2:获取远程分支信息并切换到 feature/ 获取所有远程分支Step 3:创建并切换到你的新分支Step 4:开始开发新…...
MapReduce(期末速成版)
起初在B站看3分钟的速成视频,感觉很多细节没听懂。 具体例子解析(文件内容去重) 对于两个输入文件,即文件A 和文件B,请编写MapReduce 程序,对两个文件进行合并,并剔除 其中重复的内容,得到一个新的输出文件…...
鸿蒙OSUniApp 移动端直播流播放实战:打造符合鸿蒙设计风格的播放器#三方框架 #Uniapp
UniApp 移动端直播流播放实战:打造符合鸿蒙设计风格的播放器 在移动互联网时代,直播已经成为一种主流的内容形式。本文将详细介绍如何使用 UniApp 框架开发一个优雅的直播流播放器,并融入鸿蒙系统的设计理念,实现一个既美观又实用…...

C3、C2f、C3K2、C2PSA的具体结构
YOLOV5 C3 Bottleneck C2f...

2_MCU开发环境搭建-配置MDK兼容Keil4和C51
MCU开发环境搭建-配置MDK兼容Keil4和C51 一、概述 本文以MDK-ARM V5.36版本基础介绍DMK-ARM工程兼容Keil4和C51的配置。 注:在阅读本文前,请先安装和配置完成MDK-ARM(Keil5)。 二、工具包下载 链接: https://pan.baidu.com/s/1Tu2tDD6zRra4xb_PuA1Wsw 提取码: 81pp 三、…...

通过远程桌面连接Windows实例提示“出现身份验证错误,无法连接到本地安全机构”错误怎么办?
本文介绍通过远程桌面连接Windows实例提示“出现身份验证错误无法连接到本地安全机构”错误的解决方案。 问题现象 通过本地电脑内的远程桌面连接Windows实例提示“出现身份验证错误,无法连接到本地安全机构”错误。 问题原因 导致该问题的可能原因如下&#x…...

百度golang研发一面面经
输入一个网址,到显示界面,中间的过程是怎样的 IP 报文段的结构是什么 Innodb 的底层结构 知道几种设计模式 工厂模式 简单工厂模式:根据传入类型参数判断创建哪种类型对象工厂方法模式:由子类决定实例化哪个类抽象工厂模式&#…...