当前位置: 首页 > news >正文

CSP-S模拟21

前言:

论读假题得来的\(80~pts\)

image

\(T1:\) 雷暴(storm)

思路:

据说是\(J\)组难度,几乎全切。记录下来每种颜色出现的最上/下/左/右,然后作差平方就好了

代码:

$code$
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e3+5,M=1e5+5,inf=1e5;
int n,m,k,a,lmin[M],lmax[M],rmin[M],rmax[M],s,t;
int main(){
//	freopen("storm.in","r",stdin);
//	freopen("storm.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>m>>k;for(int i=1;i<=k;i++) lmin[i]=rmin[i]=inf;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a;lmin[a]=min(lmin[a],j),lmax[a]=max(lmax[a],j);//最左/右rmin[a]=min(rmin[a],i),rmax[a]=max(rmax[a],i);//最上/下}}for(int i=1;i<=k;i++){t=max(lmax[i]-lmin[i],rmax[i]-rmin[i])+1;//作差求边长s=t*t;//求面积cout<<s<<'\n';//输出答案}return 0;
}

\(T2:\) 神力 (god)

思路:

除了我几乎都想到了\(dp\)做法,但是很显然,正着推的\(dp\)有点假,因为它会算重,因为如果第三\(i\)步到了\(j\),那么在第\(k\)\(k>i\))步到\(j\)的概率就不应该再计入了。因此我们可以倒过来\(dp\)。设\(dp_{i,j}\)表示经过后\(i\)个操作走到了距离原点为\(j\)的概率。此时唯一受影响的就是\(j=0\)的情况,强制令\(dp_{i,0}=1\)即可。

代码:

code
#include<iostream>
#define int long long
using namespace std;
const int N=5200,mod=1e9+7;
int n,p,q,a[N],f[N][N<<1];
inline int qpow(int x,int y){int res=1;while(y){if(y&1) res=(res*x)%mod;x=(x*x)%mod;y>>=1;}return res;
}//快速幂 
signed main(){
//	freopen("god.in","r",stdin);
//	freopen("god.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>p;p=p*qpow(100,mod-2)%mod;q=(1-p+mod)%mod;//分数取模 for(int i=1;i<=n;i++) cin>>a[i];f[n+1][n+1]=1;for(int i=n;i>=1;i--){//倒推 for(int j=1;j<=(n<<1)+1;j++) f[i][j]=(f[i+1][j]*p+f[i+1][j-a[i]]*q)%mod;//很显然的递推式 f[i][n+1]=1;//强制为 1 }for(int i=1;i<=(n<<1)+1;i++) cout<<f[1][i]<<" ";//输出答案 return 0;
}

\(T3:\) 之缘千里(fate)

思路:

一道如果读真题我不一定会做,但是读假题得\(80~pts\)的题。

我们可以将这题看做是左括号的位置与\(1,3,5,7,...,2n-1\)的位置匹配。遍历\(2n\)个位置,看当点位置对应的会面那个位置能否作为左括号,若能,则从可以匹配的空缺位置中找到最小的两个匹配(满足题目字典序最小的要求)。

代码:

code
#include<iostream>
#include<set>
using namespace std;
const int N=2e6+5;
int n,x,fir[N],sec[N];bool flag[N];set<int> s;
int main(){
//	freopen("fate.in","r",stdin);
//	freopen("fate.out","w",stdout);ios::sync_with_stdio(false);cin>>n;for(int i=1;i<=(n<<1);i++){cin>>x;if(fir[x]) sec[fir[x]]=i;//第二次出现的位置 else fir[x]=i;//第一次出现的位置 }for(int i=1;i<=(n<<1);i+=2) s.insert(i);//{1,3,5,7,...2*n-1}for(int i=1;i<=(n<<1);i++){if(sec[i]&&s.size()&&*s.rbegin()>=sec[i]){//有后面对应的数字&&还有位置填&&最后的空位在后面对应数字的后面(长难句,寄几分析去叭) s.erase(s.lower_bound(sec[i]));//把后面的那个位置占了 if(*s.rbegin()>=i) s.erase(s.lower_bound(i));//把现在这个位置占了 else{//前后位置不匹配 cout<<":(";//赛时题面里给的两个符号里面有空格啊啊啊 return 0;}flag[i]=flag[sec[i]]=1;//标注一下 }}if(s.size()){cout<<":(";return 0;}//没能完全匹配上 for(int i=1;i<=(n<<1);i++) //输出答案 if(flag[i]) cout<<"(";else cout<<")";return 0;
}

\(T4:\) 怒气冲天( rectangle)

思路:

借鉴的一位学长的,学长安康,学长您吉祥,学长您别生气

其实我要写的好像跟学长的也会是差不多的(毕竟是借鉴的【逃】),那就不写了???我觉得思路还是挺好懂的,就是代码实现可能困难了些,应该粘个代码就行了吧(其实也是粘学长的,微微动了一点点)

$code$
#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x&-x)
#define lid id<<1
#define rid id<<1|1
using namespace std;
const int maxn=4e5+5;
int n,lsh[maxn],tot,cnt,d[maxn],ans,res;
struct node{int x,y1,y2,typ,id;node(int x=0,int y1=0,int y2=0,int typ=0,int id=0):x(x),y1(y1),y2(y2),typ(typ),id(id){}bool operator<(const node &b)const{return (x<b.x)||(x==b.x&&typ<b.typ);}
}a[maxn];
struct BIT{int tr[maxn];void add(int p,int v){for(;p<=tot;p+=lowbit(p)) tr[p]+=v;}int query(int p){int res=0;for(;p;p-=lowbit(p)) res+=tr[p];return res;}
};
struct DS{BIT L,R;void add(int l,int r,int v){L.add(l,v),R.add(r,v);}int query(int l,int r){return L.query(r)-R.query(l-1);}
}D1,D2,D3;
//树状数组维护扫描线 struct seg{int ll,rr,sum;seg(int ll=0,int rr=0,int sum=0):ll(ll),rr(rr),sum(sum){}seg operator+(const seg &x)const{return seg(ll+x.ll,rr+x.rr,sum+x.sum+rr*x.ll);}
};
struct STR{#define ll(id) tr[id].ll#define rr(id) tr[id].rr#define sum(id) tr[id].sum	seg tr[maxn<<2];void pushup(int id){tr[id]=tr[lid]+tr[rid];}void addl(int id,int l,int r,int p,int v){if(l==r){ll(id)+=v;return ;}int mid=(l+r)>>1;if(p<=mid) addl(lid,l,mid,p,v);else addl(rid,mid+1,r,p,v);pushup(id);}void addr(int id,int l,int r,int p,int v){if(l==r){rr(id)+=v;return ;}int mid=(l+r)>>1;if(p<=mid) addr(lid,l,mid,p,v);else addr(rid,mid+1,r,p,v);pushup(id);}seg query(int id,int L,int R,int l,int r){if(L>=l&&R<=r) return tr[id];int mid=(L+R)>>1;if(r<=mid) return query(lid,L,mid,l,r);if(l>mid) return query(rid,mid+1,R,l,r);return query(lid,L,mid,l,r)+query(rid,mid+1,R,l,r);}
}S;
//线段树 signed main(){ios::sync_with_stdio(0),cin.tie(0);cin>>n;for(int i=1,x1,x2,y1,y2;i<=n;i++){cin>>x1>>x2>>y1>>y2;lsh[++tot]=y1,lsh[++tot]=y2;a[++cnt]=node(x1,y1,y2,0,i);a[++cnt]=node(x2,y1,y2,1,i);}sort(lsh+1,lsh+tot+1);tot=unique(lsh+1,lsh+tot+1)-lsh-1;for(int i=1;i<=cnt;i++){a[i].y1=lower_bound(lsh+1,lsh+tot+1,a[i].y1)-lsh;a[i].y2=lower_bound(lsh+1,lsh+tot+1,a[i].y2)-lsh;}sort(a+1,a+cnt+1);ans=n*(n-1)*(n-2)/6;for(int i=1,l,r,typ,id;i<=cnt;i++){l=a[i].y1,r=a[i].y2,typ=a[i].typ,id=a[i].id;if(typ){D2.add(l,r,1);d[id]+=D1.query(l,r)-1;S.addl(1,1,tot,l,-1);S.addr(1,1,tot,r,-1);D3.add(l,r,-1);}else{D1.add(l,r,1);d[id]-=D2.query(l,r);int tmp=D3.query(l,r);ans-=tmp*(tmp-1)/2-S.query(1,1,tot,l,r).sum;S.addl(1,1,tot,l,1);S.addr(1,1,tot,r,1);D3.add(l,r,1);}}for(int i=1;i<=n;i++) res+=(n-2)*d[i]-d[i]*(d[i]-1);cout<<ans-res/2;return 0;
}

相关文章:

CSP-S模拟21

前言: 论读假题得来的\(80~pts\)\(T1:\) 雷暴(storm) 思路: 据说是\(J\)组难度,几乎全切。记录下来每种颜色出现的最上/下/左/右,然后作差平方就好了 代码:$code$ #include<iostream> #include<algorithm> using namespace std; const int N=1e3+5,M=1e5+…...

【System Beats!】第二章 信息的表示与处理

2.1 信息存储 大多数计算机使用8位的块,或者字节,作为最小的可寻址的内存单位。 机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。 内存的每个字节用唯一的数字标识,称为它的地址。 所有可能地址的集合称为虚拟地址空间。 例如:C语言中一个指针的值都是某个存储块…...

ZR 25 noip D3T2 题解 | 构造、数学

传送门 标签:构造、数学 题意 给你一个长为 \(2 \times n\) 的数列 \(a\),满足 \(\forall i \in [1, 2 \times n], a_i \in [0, n]\)。 求一个区间,可以将区间中的数划分到两个集合,满足两个集合中数的和相同。 思路 考虑分析题目研究的组合对象,是一个区间。 考虑这个操作…...

9. LangChain4j + 整合 Spring Boot - Rainbow

9. LangChain4j + 整合 Spring Boot @目录9. LangChain4j + 整合 Spring BootLangChain4j + 整合 Spring Boot 实操最后:LangChain4j 整合 SpringBoot 官方文档:https://docs.langchain4j.dev/tutorials/spring-boot-integration/浅谈—下:LangChain4j twolevels of abstrac…...

gcc

用 GCC 在命令行编译源文件:...

在企业内部分发 iOS App 时如何生成并应用 manifest.plist

在企业内部分发 iOS App 时如何生成并应用 manifest.plistpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", m…...

CSP2025 游记

9.14 终于摆脱文化课爽了。 pyb 搞了一个停课仪式,每个人可以抽一瓶可乐,上面有定制的文字。 里面有四瓶可乐分别是:“联 2”、“赛 0”、“冲 2”、“刺 5”,然后就有人说抽到“赛 0”就是联赛爆零。 然后我随手一抽就是这瓶……万一是联赛零失误的意思呢? CSP2025 游记正…...

Luogu P14031 【MX-X20-T5】「FAOI-R7」连接时光 II

懒场上死活不会,下来再看一下就会了,两周没开电脑导致的。 首先考虑如何计算 \(f_S(p)\)。 首先因为 \(f_S(p)\) 的限制都是对于前缀的图的限制,所以先来考察前缀的图的结构和变化情况。 经过手玩能够知道,对于前 \(i\) 个数的图,根据值域划分,连通块就为一些相邻的区间 …...

第一周预习作业

占位,等我研究一下md和html互转...

计算机大数据毕业设计推荐:基于Spark的新能源汽车保有量可视化分析系统 - 指南

计算机大数据毕业设计推荐:基于Spark的新能源汽车保有量可视化分析系统 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

csp 2025 油迹

开坑。 度过了近 4 年 oi 生涯怎么能一点回忆都不留下? 反正都是随便写写,如果开到你了或者让你不适了可以评论喷我。 还是希望有一个好到能让我打高二的成绩的。 有密码的总结属于校内联考范畴。 0914 给某个关系好的同学买了礼物,然后还给自己买了个小东西,但是周三才能拿…...

完整教程:JMeter基本介绍

完整教程:JMeter基本介绍pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...

[]

yy...

rv

veve...

Source Insight 4.0安装和使用教程

参考博文 Source Insight破解安装 Source Insight新建工程 Source Insight使用教程 1. Source Insight安装 1.1 安装包和破解 安装和破解文件 链接:https://pan.baidu.com/s/14o2pl6FpD6mMvSNsdb21cA?pwd=8wr7 提取码:8wr7 (博客提供) 链接: https://pan.baidu.com/s/1WY5…...

EF Core 介绍与入门实操

EF Core 介绍与入门实操简介 EF Core(Entity Framework Core)是Microsoft推出的开源跨平台ORM框架,支持SQL Server、SQLite、MySQL、PostgreSQL等主流数据库,并提供向NoSQL数据库(如Cosmos DB)的扩展能力。它通过DbContext管理实体与数据库的映射关系,提供LINQ查询、CRU…...

jdk8.0中导入新证书

windows系统中,java环境是jdk1.8.0,以前通过https://xxx.xxx.cn/open_api/authenticatin/get_access_token?key=xxx&secret=xxx访问第三方时能获取正确数据,现在调用时程序报错:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKI…...

ORA-00800

Table of Contents1. 现象 2. 原因分析 3. MOS搬迁3.1. Cause 3.2. Solution3.2.1. ORADISM Permission: 3.2.2. Check the priority of VKTM or LMS* @RDBMS level: 3.2.3. Cgroup Configuration 3.2.4. Priority and Runtime 3.2.5. "nosuid" option : 3.2.6. Orad…...

50期权日内交易技巧 - 指南

50期权日内交易技巧 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-siz…...

使用overleaf编写中文

第一步:在Menu中修改编译器为 “XeLateX”添加代码 \usepackage{ctex}...

9.13 CSP-S模拟21 改题记录

HZOI 写在前面 挂如分挂如分天天挂如分。T1秒切,T2看似有思路实则推半天推不出来,T4跑去库里苦找函数,然后经过探索规律终于找到正确用法了狂砍40pts。然后就打T2T3特殊性质,本以为都挺合理但是就是写挂了,而且还是挂一片,甚至暴力也挂挂挂。大概就是100+40+(>32)+40 …...

Vulkan API 创建并渲染一个辐照度立方体贴图,用于 PBR 光照计算

我将为 generateIrradianceCube 函数提供逐行中文注释和分析。这个函数是用 C++ 编写的,使用 Vulkan API 生成用于物理基础渲染 (PBR) 的辐照度立方体贴图 (irradiance cube map)。该函数创建一个立方体贴图,设置离屏渲染管线,并将环境贴图渲染为具有多级渐进纹理 (mip leve…...

使用Putty远程连接树莓派5提示No supported authentication methods available

下面中提示的错误只能使用显示器进入系统修改sudo nano /etc/ssh/sshd_config把下面文件中PasswordAuthentication设定成yes# To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes #PermitEmptyPasswords no...

[USACO24FEB] Maximizing Productivity

ci​ 表示关闭第 i 个农场的时间,ti​ 表示到第 i 个农场的初始时间,用 latei​ 要想在关闭前到达第 i 个农场的最晚时间,此时我们只需要把 late 数组从大到小排序即可,只要看第 v 个是否能按时到达即可。因为数组有序,如果能到达,说明所有比他小的农场都可以到达。#incl…...

记录一个纯CSS实现滚动驱动动画的效果

使用sticky与animation-timeline实现元素固定的滚动驱动动画文章在个人网站中发布,原文链接:记录一个纯CSS实现滚动驱动动画的效果先看一下这个简单的案例 代码: 你也可以直接划到下边看效果。 <div class="out-cont"><!-- 最外层元素,用于框定元素需要…...

第一周个人作业——我

第一周个人作业——我一、自我介绍 作为一名大三的学生,我的兴趣相对杂乱,涉及从小说、影视到动画、文学,再到网络论坛等多个领域,每一个都让我感受到了不同的灵感与启发。我更享受独处的时光,喜欢通过阅读和思考充实自己。偶尔我也会玩一些联机游戏,逛逛GitHub,或者与朋…...

Apache IoTDB V1.3.5 发布|优化加密算法,优化内核稳定性,修复社区反馈问题 - 详解

Apache IoTDB V1.3.5 发布|优化加密算法,优化内核稳定性,修复社区反馈问题 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…...

Acrobat Pro DC 2025破解版安装下载教程,附永久免费免中文破解版(稳定版安装包)

一、Acrobat Pro DC 2025软件下载 [软件名称]: Acrobat Pro DC 2025(稳定版) [软件大小]: 1.63GB [安装环境]:Win 10及以上系统 [下载链接]: (建议手机保存后到电脑端打开,下载解压无需任何密码) 夸克下载链接:https://pan.quark.cn/s/c4f8d5fb593f 二、Acrobat Pro DC 20…...

20250914

1.使用缩进 2.单行字符120个以内 3.命名清晰 4.注释简洁易懂 数学之美第8章 bool代数在搜索引擎中起到了重要作用,没有他,搜索引擎的效率无法达到快速响应。 他主要通过为每个关键字建立二进制串,然后通过and,or,not进行二进制的运算, 1为符合,0为不符合,从而进行查找。…...

25秋周总结2

总结 这周基本都在考试,总的来说相比之前有一定提升,但事实上离自己的水平上限都还差了一段距离,更别说突破上限了。在我看来,现在的我不出意外每场得把最简单的两道题做出来,但是现在的情况就是还是会存在一些时候面对很简单的题却没能做出来。虽然次数不多,但是没有做出…...

华擎、微星、华硕BIOS阵脚线序及杜邦现自制刷机线

华擎、微星、华硕BIOS阵脚线序及杜邦现自制刷机线 起因及背景 博主注意到最近的一段时间八九代志强CPU进入了主流的垃圾佬视线内,且H310、Z270、B365等主板来到了100~180元的价位,配合上E2124g这种35元的核显U可以做到400元内高性能的办公和轻度游戏主机。 缺陷:但是这套玩法…...

Ubuntu 安装 VLC

sudo apt install vlc -y...

AT_abc422_f [ABC422F] Eat and Ride 题解

AT_abc422_f [ABC422F] Eat and Ride 题解 前言 好消息:场切了。 坏消息:没开 rated。 思路 注意到数据范围非常小,考虑暴力bfs。 设 $dis_i$ 为到达第 $i$ 个点的最小燃料,$w_i$ 为到达第 $i$ 个点时耗燃料最少时的体重。 如果有一条路径到达第 $i$ 个点时已经用了 $d$ 燃…...

模拟赛 R14

R14 - T1 序列 难度:黄 / 绿 题意 给定一个长为 \(n\) 的非负整数序列 \(a\),你可以进行任意次以下的操作: 选择一个区间 \([l,r]\),然后将 \(a_l,a_{l+1},\cdots,a_r\) 都减去 \(1\)。 你希望用最小的操作次数将 \(a\) 中的所有数变成 \(0\)。在此基础上,定义一次操作 \(…...

Java并发编程(2)

ThreadLocal 1、ThreadLocal是什么ThreadLocal就是线程本地变量,若创建了一个ThreadLocal变量,那访问这个变量的每个线程都会有这个变量的本地拷贝,但多个线程操作这个变量时,实际是操作自己本地内存里的变量,可以起到线程隔离的作用,避免了线程安全问题。//创建一个Thre…...

完整教程:WebApp 的价值与实现:从浏览器架构到用户体验优化

完整教程:WebApp 的价值与实现:从浏览器架构到用户体验优化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

Ubuntu 安装百度网盘

下载:https://pan.baidu.com/download#linux百度网盘就安装好了:...

八字喜用神起名大师 API 接口

八字喜用神起名大师 API 接口 AI/模型 基于八字命理和五行相生相克理论 十年模型积累 / 三才五格数理 姓名 / 八字命理 1. 产品功能基于传统八字命理学理论; 结合三才五格数理分析; 考虑五行相生相克关系; 提供多个候选姓名供选择; 包含详细的命理分析报告; 支持方言谐音检…...

在CentOS 7上集成cJSON库的方法

安装开发工具:使用yum包管理器安装开发工具组,以确保您拥有编译cJSON所需的所有工具,例如gcc、make、autoconf等。sudo yum groupinstall "Development Tools"获取cJSON源代码:从官方仓库克隆或下载cJSON的最新源代码。git clone https://github.com/DaveGamble/cJ…...

作业1

任务一:编码规范命名规范 变量、函数、类和文件名应该简明易懂,使用英文单词或单词缩写,并使用下划线或驼峰命名法。 变量名应该使用名词,函数名应该使用动词,类名应该使用名词或名词短语,文件名应该使用有意义的名称。 格式化规范 代码行长度应该不超过80个字符。 使用一…...

网站截图与 HTML 快照 API 接口

网站截图与 HTML 快照 API 接口 网站工具 通过网页 URL 获取站点截图与内容 网页截图 / 网页快照 网站工具 / 截图 1. 产品功能支持任意网页 URL 高质量截图,包括动态内容和 JavaScript 渲染页面; 支持全页面截图和可视区域截图两种模式; 可自定义截图尺寸、设备像素比等参数…...

深入解析:精确位置定位,AR交互助力高效作业流程​

深入解析:精确位置定位,AR交互助力高效作业流程​pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospa…...

sdjaivkdshwqeofhsoejbc dfb vnhgtbv

几餐这一块...

开篇自我介绍随笔

一、自我介绍 生活里的我,有很多让自己沉浸其中的小爱好。我喜欢练书法,看着墨汁在宣纸上晕开,一笔一划勾勒出汉字的风骨,烦躁的心总能瞬间平静;也爱绘画,无论是用水彩记录生活里的小美好,还是用素描刻画细节,都是我表达想法的方式。除此之外,追综艺、追星也是我放松的…...

第八周

Hadoop 集群的稳定运行离不开完善的监控体系,搭建涵盖集群负载监控与日志收集的监控系统,可实时掌握集群运行状态,及时发现潜在问题。在集群负载监控方面,Ganglia 是常用的分布式监控工具,能够收集并展示集群中各节点的 CPU 使用率、内存占用量、磁盘 IO 速率、网络流量等…...

Tita 项目一体化管理:驱动项目全周期高效运营的引擎

一、企业项目管理的常见痛点 (一)项目启动规划阶段 目标模糊不清:项目启动时缺乏明确可量化的目标,团队成员对项目核心价值和预期成果理解不一致,导致后续工作方向偏离。例如,某研发项目因 “提升产品竞争力” 这一模糊目标,在功能开发中反复调整方向,浪费大量资源。计…...

飞行 NED坐标系(北东地坐标系):

在NED坐标系(北东地坐标系)中,飞机的‌天向速度‌、‌东向速度‌、‌北向速度‌的关系如下: 速度定义‌北向速度‌(N):飞行器在北方向上的移动速度。 ‌东向速度‌(E):飞行器在东方向上的移动速度。 ‌天向速度‌(D):飞行器在垂直地面向上的移动速度(通常为正)。…...

windows与linux环境下网络编程

windows与linux环境进行网络编程,使用的库是不一样的, 下面主要说一下windows环境下的网络编程; 网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包…...

在飞牛系统中通过docker形式部署Nginx proxy manager

在飞牛系统中通过docker形式部署Nginx proxy manager本文仅用用于记录。 目标: 分别通过以飞牛的图形化界面和docker compose实现以docker的方式部署Nginx proxy manager。 首先,管理员应当新建2个文件夹用于持久化数据存储(就是你想要留着的数据找个地方放好) 1.data 存放…...

Es索引同步异步Canal解耦方案

Es索引同步异步Canal解耦方案 首先传统的Es索引同步耦合性太高需要使用业务逻辑来同步,一旦在同步的时候服务器出现异常就用可能同步失败导致影响到其他业务,这里使用的是Canal中间件来实现异步同步索引。 简述: ​ 这里以电商项目为例,当需要添加,修改或删除商品时为了电…...