洛谷题单 Part 6.7.1 矩阵

news/2024/5/10 6:35:33

应队友要求,开始学线性代数,具体路线是矩阵 → \rightarrow 高斯消元 → \rightarrow 线性基。为多项式做个准备

P3390 【模板】矩阵快速幂

题面
板子,用结构体写的,感觉有点丑,一会儿看看题解有没有写得好看的

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
const ll mod=1e9+7;
struct node{ll a[N][N];int len;}sqr;
void sqr0(node &x){memset(x.a,0,sizeof x.a);x.len=sqr.len;
}
void sqr1(node &x){memset(x.a,0,sizeof x.a);x.len=sqr.len;for(int i=1;i<=x.len;i++)x.a[i][i]=1;
}
node operator*(node x, node b){node c;sqr0(c);for(int i=1;i<=x.len;i++){for(int j=1;j<=x.len;j++){for(int k=1;k<=x.len;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}void qpow(node &x, ll y){node re;sqr1(re);while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
ll k;
int main(){scanf("%d%lld",&sqr.len,&k);for(int i=1;i<=sqr.len;i++){for(int j=1;j<=sqr.len;j++)scanf("%lld",&sqr.a[i][j]);}qpow(sqr,k);for(int i=1;i<=sqr.len;i++){for(int j=1;j<=sqr.len;j++)printf("%lld ",sqr.a[i][j]);puts("");}
}

P1939 【模板】矩阵加速(数列)

题面
搞个方阵
A 3 = [ a 3 a 2 a 1 0 0 0 0 0 0 ] , X = [ 1 1 0 0 0 1 1 0 0 ] , A_3=\left [ \begin{matrix} a_3& a_2 & a_1 \\ 0& 0 &0 \\ 0 & 0 & 0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} 1& 1 & 0 \\ 0& 0 &1 \\ 1& 0 & 0 \\ \end{matrix} \right], A3= a300a200a100 ,X= 101100010 ,
A 3 X = [ a 4 a 3 a 2 0 0 0 0 0 0 ] = A 4 , A_3X=\left [ \begin{matrix} a_4& a_3 & a_2 \\ 0& 0 &0 \\ 0 & 0 & 0 \\ \end{matrix} \right]=A_4, A3X= a400a300a200 =A4,
因此对 X X X进行矩阵快速幂即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5;
const ll mod=1e9+7;
struct node{ll a[N][N];}sqr,A;
void sqr0(node &x){memset(x.a,0,sizeof x.a);
}
void sqr1(node &x){memset(x.a,0,sizeof x.a);for(int i=1;i<=3;i++)x.a[i][i]=1;
}
node operator*(node x, node b){node c;sqr0(c);for(int i=1;i<=3;i++){for(int j=1;j<=3;j++){for(int k=1;k<=3;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}void qpow(node &x, ll y){node re;sqr1(re);while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
ll n,T;
int main(){cin>>T;while(T--){cin>>n;if(n<=3){puts("1");continue;}sqr0(sqr);sqr.a[1][1]=sqr.a[1][2]=sqr.a[2][3]=sqr.a[3][1]=1;sqr0(A);A.a[1][1]=A.a[1][2]=A.a[1][3]=1;qpow(sqr,n-3);A=A*sqr;cout<<A.a[1][1]<<endl;}}

P4783 【模板】矩阵求逆

题面
把一个矩阵通过行变换变为单位矩阵所需要的行变换操作,操作给一个单位矩阵,就可以得到其逆矩阵。故应用高斯消元即可。

#include<bits/stdc++.h>
#define N 1000
using namespace std;
const int mod=1e9+7;
inline void read(int &x){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9'){s=(s<<3)+(s<<1)+(ch&15);ch=getchar();}x=s*w;
}
int n,a[N][N];
int qpow(int x, int y){int re=1;while(y){if(y&1)re=1LL*re*x%mod;x=1LL*x*x%mod,y>>=1;}return re;
}
int main(){read(n);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)read(a[i][j]);a[i][n+i]=1;}for(int i=1;i<=n;i++){int now=i;for(int j=i;j<=n;j++)if(a[now][i]<a[j][i])now=j;if(a[now][i]==0){puts("No Solution");return 0;}if(now!=i)swap(a[now],a[i]);for(int j=i+1;j<=n<<1;j++)a[i][j]=1LL*a[i][j]*qpow(a[i][i],mod-2)%mod;a[i][i]=1;for(int j=1;j<=n;j++){if(j==i)continue;int div=1LL*a[j][i]*qpow(a[i][i],mod-2)%mod;for(int k=i;k<=n<<1;k++)a[j][k]=(a[j][k]-1LL*a[i][k]*div%mod+mod)%mod;}}for(int i=1;i<=n;i++,puts(""))for(int j=1;j<=n;j++)printf("%d ",a[i][n+j]);}

P1962 斐波那契数列

题面
构造矩阵
A 2 = [ f 2 f 1 0 0 ] , X = [ 1 1 1 0 ] , A_2=\left [ \begin{matrix} f_2 & f_1 \\ 0 &0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} 1& 1 \\ 1& 0 \\ \end{matrix} \right], A2=[f20f10],X=[1110],
A 2 X = [ f 3 f 2 0 0 ] = A 3 , A_2X=\left [ \begin{matrix} f_3 & f_2 \\ 0 &0 \\ \end{matrix} \right]=A_3, A2X=[f30f20]=A3,

#include<cstdio>
typedef long long ll;
const ll mod=ll(1e9+7);
struct node
{ll sqr[5][5];
}a;
node operator*(node a, node b)
{node c;c.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%mod+a.sqr[1][2]*b.sqr[2][1]%mod)%mod;c.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%mod+a.sqr[1][2]*b.sqr[2][2]%mod)%mod;c.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%mod+a.sqr[2][2]*b.sqr[2][1]%mod)%mod;c.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%mod+a.sqr[2][2]*b.sqr[2][2]%mod)%mod;return c;
}
ll n;
void quickpow(node &x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1,rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y&1)rec=rec*x;x=x*x,y>>=1;}x=rec;
}
int main()
{scanf("%lld",&n);if(n==0)return puts("0");a.sqr[1][1]=a.sqr[1][2]=a.sqr[2][1]=1,a.sqr[2][2]=0;quickpow(a,n-1);printf("%lld\n",a.sqr[1][1]);
}

P1349 广义斐波那契数列

题面
构造矩阵
A 2 = [ f 2 f 1 0 0 ] , X = [ P 1 Q 0 ] , A_2=\left [ \begin{matrix} f_2 & f_1 \\ 0 &0 \\ \end{matrix} \right] ,X=\left [ \begin{matrix} P& 1 \\ Q& 0 \\ \end{matrix} \right], A2=[f20f10],X=[PQ10],
A 2 X = [ f 3 f 2 0 0 ] = A 3 , A_2X=\left [ \begin{matrix} f_3 & f_2 \\ 0 &0 \\ \end{matrix} \right]=A_3, A2X=[f30f20]=A3,

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod;
struct node
{ll sqr[5][5];node(){memset(sqr,0,sizeof sqr);}
}a,b;
node operator*(node a, node b)
{node c;c.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%mod+a.sqr[1][2]*b.sqr[2][1]%mod)%mod;c.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%mod+a.sqr[1][2]*b.sqr[2][2]%mod)%mod;c.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%mod+a.sqr[2][2]*b.sqr[2][1]%mod)%mod;c.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%mod+a.sqr[2][2]*b.sqr[2][2]%mod)%mod;return c;
}
ll n;
void quickpow(node &x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1,rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y&1)rec=rec*x;x=x*x,y>>=1;}x=rec;
}
int main()
{scanf("%lld%lld%lld%lld%lld%lld",&a.sqr[1][1],&a.sqr[2][1],&b.sqr[1][2],&b.sqr[1][1],&n,&mod);if(n<=2)return printf("%lld\n",b.sqr[1][3-n]);a.sqr[1][2]=1,a.sqr[2][2]=0;quickpow(a,n-2);b=b*a;printf("%lld\n",b.sqr[1][1]);
}

P4000 斐波那契数列

题面
不是,这什么题都往题单里放啊,这是我 18 18 18年外出集训堵了个论文费了两三天时间才切了的人生中第一道黑题,现在变成紫题了。
有一个性质是 f n m o d p f_n\mod p fnmodp有循环节,且循环节长度不会超过 6 p 6p 6p,这还有个名叫皮萨诺定理。所以我们考虑求出循环节的长度,然后用矩阵乘法求出结果。
引理:对于 f n m o d p f_n\mod p fnmodp的循环节 g ( p ) g(p) g(p)有如下性质:
1. p = p i α i 1.p=p_i^{\alpha_i} 1.p=piαi,即 p p p为质数的幂时, g ( p ) = g ( p i ) × p i α i − 1 g(p)=g(p_i)\times p_i^{\alpha_i-1} g(p)=g(pi)×piαi1
2. p = ∏ p i α i 2.p=\prod p_i^{\alpha_i} 2.p=piαi,即 p p p为合数时, g ( p ) = l c m ( g ( p i α i ) g(p)=lcm(g(p_i^{\alpha_i}) g(p)=lcm(g(piαi)
对于 g ( p ) g(p) g(p)这么算,如果 5 5 5是模 p p p的二次剩余,那么循环节为 p − 1 p-1 p1的因子,否则为 2 p + 2 2p+2 2p+2的因子。
因为 p p p不是特别大,直接取 p − 1 p-1 p1 2 p + 2 2p+2 2p+2即可。
对于 p ≤ 5 p\le 5 p5就暴力算即可, g ( 2 ) = 3 , g ( 3 ) = 5 , g ( 5 ) = 20 g(2)=3,g(3)=5,g(5)=20 g(2)=3,g(3)=5,g(5)=20

// luogu-judger-enable-o2
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
#define rg register
typedef long long ll;
char str[30000000];
ll n,p,mod,len,fac[100000],power[100000],faccnt,s;
struct node
{ll sqr[5][5];
}b;
node operator *(node a, node b)
{node xx;xx.sqr[1][1]=(a.sqr[1][1]*b.sqr[1][1]%p+a.sqr[1][2]*b.sqr[2][1]%p)%p;xx.sqr[1][2]=(a.sqr[1][1]*b.sqr[1][2]%p+a.sqr[1][2]*b.sqr[2][2]%p)%p;xx.sqr[2][2]=(a.sqr[2][1]*b.sqr[1][2]%p+a.sqr[2][2]*b.sqr[2][2]%p)%p;xx.sqr[2][1]=(a.sqr[2][1]*b.sqr[1][1]%p+a.sqr[2][2]*b.sqr[2][1]%p)%p;return xx;
}
node quickpow(node x, ll y)
{node rec;rec.sqr[1][1]=rec.sqr[2][2]=1;rec.sqr[1][2]=rec.sqr[2][1]=0;while(y){if(y%2==1)rec=rec*x;x=x*x;y/=2;}return rec;
}
ll gcd(ll a, ll b)
{if(b==0)return a;else return gcd(b,a%b);
}
ll lcm(ll a, ll b)
{return a*b/gcd(a,b);
}
ll get(ll k)
{ll now=k;for(rg ll i=2;i*i<=now;i++){if(now%i==0){faccnt++;fac[faccnt]=i;power[faccnt]=1;while(now%i==0){now/=i;power[faccnt]*=i;}}}for(rg ll i=1;i<=faccnt;i++)power[i]/=fac[i];if(now!=1){fac[++faccnt]=now;power[faccnt]=1;}for(rg ll i=1;i<=faccnt;i++){if(fac[i]==2)power[i]*=3;else if(fac[i]==3)power[i]*=5;else if(fac[i]==5)power[i]*=20;else if(fac[i]%5==1||fac[i]%5==4)power[i]*=fac[i]-1;else power[i]*=(fac[i]+1)<<1;}ll ans=power[1];for(rg ll i=1;i<=faccnt;i++)ans=lcm(ans,power[i]);return ans;
}
int main()
{scanf("%s%lld",str,&p);if(p==1){printf("0\n");return 0;}mod=get(p);len=strlen(str);for(rg ll i=0;i<len;i++)n=((n<<3)+(n<<1)+(str[i]&15))%mod;if(n==0){printf("0\n");return 0;}if(n==1||n==2){printf("1\n");return 0;}b.sqr[2][2]=0;b.sqr[1][1]=b.sqr[1][2]=b.sqr[2][1]=1;b=quickpow(b,n-1);printf("%lld\n",b.sqr[1][1]);
}

P3758 [TJOI2017] 可乐

题面

#include<bits/stdc++.h>
#define N 50
using namespace std;
const int mod=2017;
int t,n,m;
struct node{int a[N][N];node(){memset(a,0,sizeof a);}
}sqr;
node operator*(node x, node b){node c;for(int i=0;i<=n;i++){for(int j=0;j<=n;j++){for(int k=0;k<=n;k++)(c.a[i][j]+=x.a[i][k]*b.a[k][j]%mod)%=mod;}}return c;
}
void qpow(node &x, int y){node re;for(int i=0;i<=n;i++)re.a[i][i]=1;while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
int main(){cin>>n>>m;for(int i=1,u,v;i<=m;i++)cin>>u>>v,sqr.a[u][v]=sqr.a[v][u]=1;cin>>t;for(int i=1;i<=n;i++)sqr.a[i][0]=1;for(int i=0;i<=n;i++)sqr.a[i][i]=1;qpow(sqr,t);int ans=0;for(int i=0;i<=n;i++)(ans+=sqr.a[1][i])%=mod;cout<<ans<<endl;}

P5343 【XR-1】分块

题面
方程很简单 d p [ i ] = ∑ j ∈ b l o c k , j ≤ i d p [ i − j ] dp[i]=\sum_{j\in block,j\le i}dp[i-j] dp[i]=jblock,jidp[ij],现在考虑如何矩阵优化。
由于块的大小不会超过 100 100 100,所以我们开一个 100 × 100 100\times 100 100×100的矩阵,首先预处理出 d p [ 1 ] − d p [ 100 ] dp[1]-dp[100] dp[1]dp[100],将其填入 A A A矩阵第一行中,再考虑所有 j ∈ b l o c k j\in block jblock,设 X [ j ] [ 1 ] = 1 X[j][1]=1 X[j][1]=1,对于后99列设 X [ j − 1 ] [ j ] = 1 X[j-1][j]=1 X[j1][j]=1,则这样可以转移 A A A矩阵,应用矩阵快速幂即可。

#include<bits/stdc++.h>
#define N 120
using namespace std;
const int mod=1e9+7;
const int len=100;
inline void read(int &x){int s=0,w=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}while(ch>='0'&&ch<='9'){s=(s<<3)+(s<<1)+(ch&15);ch=getchar();}x=s*w;
}
long long n;
int p,q,cnt,a[N],f[N],vis[N];
set<int> s;
struct node{int m[N][N];node(){memset(m,0,sizeof m);}
}sqr,A;
node operator*(node a, node b){node c;for(int i=0;i<=len;i++)for(int j=0;j<=len;j++)for(int k=0;k<=len;k++)c.m[i][j]=int((1LL*c.m[i][j]+1LL*a.m[i][k]*b.m[k][j]%mod)%mod);return c;
}
void qpow(node &x, long long y){node re;for(int i=0;i<=len;i++)re.m[i][i]=1;while(y){if(y&1)re=re*x;x=x*x;y>>=1;}x=re;
}
int main(){cin>>n;read(p);for(int i=1,x;i<=p;i++){read(x);if(s.find(x)==s.end())s.insert(x);}read(q);for(int i=1,x;i<=q;i++){read(x);if(s.find(x)!=s.end()&&!vis[x])a[++cnt]=x,vis[x]=1;}f[0]=1;for(int i=1;i<=len;i++)for(int j=1;j<=cnt;j++)if(a[j]<=i)f[i]=(1LL*f[i]+f[i-a[j]])%mod;if(n<=100){printf("%d\n",f[n]);return 0;}for(int i=0;i<=len;i++)sqr.m[0][len-i]=f[i];for(int i=1;i<=cnt;i++)A.m[a[i]-1][0]=1;for(int i=1;i<=len;i++)A.m[i-1][i]=1;qpow(A,n-100);sqr=sqr*A;printf("%d\n",sqr.m[0][0]);return 0;
}

http://www.mrgr.cn/p/46284641

相关文章

分享200+个关于AI的网站

分享200个关于AI的网站 欢迎大家访问&#xff1a;https://tools.haiyong.site/ai 快速导航 AI 应用AI 写作AI 编程AI 设计AI 作图AI 训练模型AI 影音编辑AI 效率助手 AI 应用 文心一言: https://yiyan.baidu.com/ 百度出品的人工智能语言模型 ChatGPT: https://chat.openai.c…

2023年值得推荐的5个数据可视化平台

之前看过一篇介绍20款国外常用的数据可视化工具后&#xff0c;很多朋友在评论区表示国内也有很多很不错的主流数据可视化平台&#xff0c;今天就来给大家介绍国内5个主流的数据可视化平台。 1、阿里云DataV DataV数据可视化是使用可视化应用的方式来分析并展示庞杂数据的产品。…

大数据课程D7——hadoop的YARN

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解YARN的概念和结构&#xff1b; ⚪ 掌握YARN的资源调度流程&#xff1b; ⚪ 了解Hadoop支持的资源调度器&#xff1a;FIFO、Capacity、Fair&#xff1b; ⚪ 掌握YA…

Django实现音乐网站 ⑴

使用Python Django框架制作一个音乐网站。 目录 网站功能模块 安装django 创建项目 创建应用 注册应用 配置数据库 设置数据库配置 设置pymysql库引用 创建数据库 创建数据表 生成表迁移文件 执行表迁移 后台管理 创建管理员账户 启动服务器 登录网站 配置时区…

SpringBoot整合ActiveMQ

ActiveMQ简单使用 JMS ActiveMQ 下载安装 https://activemq.apache.org/components/classic/download/解压缩文件。进入win64目录&#xff0c;双击运行activemq.bat文件&#xff0c;运行服务 将下面的网址输入到浏览器&#xff0c;用户名和密码都是admin SpringBoot整合Act…

flutter 导出iOS问题2

问题1:The Swift pod FirebaseCoreInternal depends upon GoogleUtilities, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries) 参考 正如上图报错第三方…

Java 源码打包 降低jar大小

这里写目录标题 Idea maven 插件配置pom.xml 配置启动技巧 Idea maven 插件配置 pom.xml 配置 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 只…

不同局域网下使用Python自带HTTP服务进行文件共享「端口映射」

文章目录 1. 前言2. 视频教程3. 本地文件服务器搭建3.1 python的安装和设置3.2 cpolar的安装和注册 4. 本地文件服务器的发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用&#xff0c;不仅在商业和办公场景有…

基于光子实验的指数级加速的量子同态加密理论

前言 量子计算机不仅有望在某些重要任务上超越经典计算机&#xff0c;而且还能保护计算的隐私。例如&#xff0c;盲量子计算协议支持安全委托量子计算&#xff0c;其中客户端可以保护其数据和算法的隐私&#xff0c;不受分配来运行计算的量子服务器的影响。然而&#xff0c;这…

RNN架构解析——传统RNN模型

目录 传统RNN的内部结构图使用RNN优点和缺点 传统RNN的内部结构图 使用RNN rnnnn.RNN(5,6,1) #第一个参数是输入张量x的维度&#xff0c;第二个是隐藏层维度&#xff0c;第三层是隐藏层的层数 input1torch.randn(1,3,5) #第一个是输入序列的长度&#xff0c;第二个是批次的样本…

前端文件上传实践与后端处理——文件分块上传

文件上传是现代Web应用程序中常见的功能之一。在这篇博客中&#xff0c;我们将探讨一个简单但完整的前端文件上传实践&#xff0c;同时提供一个后端示例&#xff0c;演示如何处理上传的文件。我们将使用JavaScript作为前端语言&#xff0c;并结合Node.js作为后端环境。让我们开…

前端Vue入门-day05-自定义指令、插槽、路由入门

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 自定义指令 基本语法 (全局&局部注册) 全局注册 局部注册 指令的值 v-loading 指令封装 插槽 …

this is incompatible with sql_mode=only_full_group_by

查看配置 select global.sql_mode 在sql命令行中输入select sql_mode 能够看到sql_mode配置,如果有ONLY_FULL_GROUP_BY&#xff0c;则需要修改 在mysql5.7.5后&#xff0c;ONLY_FULL_GROUP_BY是默认选项&#xff0c;所以就会导致group by的问题 set sql_mode‘复制去掉ONLY_F…

游戏引擎UE如何革新影视行业?创意云全面支持UE云渲染

虚幻引擎UE&#xff08;Unreal Engine&#xff09;作为一款“殿堂级”的游戏引擎&#xff0c;占据了全球80%的商用游戏引擎市场&#xff0c;但如果仅仅将其当做游戏开发的工具&#xff0c;显然是低估了它的能力。比如迪士尼出品的电视剧《曼达洛人》、电影《狮子王》等等都使用…

Docker 阿里云容器镜像服务

阿里云-容器镜像服务ACR 将本地/服务器docker image&#xff08;镜像&#xff09;推送到 阿里云容器镜像服务仓库 1. 在容器镜像服务ACR中创建个人实例 2. 进入个人实例 > 命名空间 创建命名空间 3. 进入个人实例 > 镜像仓库 创建镜像仓库 4. 进入镜像仓库 > 基本信…

Vue没有node_modules怎么办

npm install 一下 然后再npm run serve 就可以运行了

PyTorch从零开始实现Transformer

文章目录 自注意力Transformer块编码器解码器块解码器整个Transformer参考来源全部代码&#xff08;可直接运行&#xff09; 自注意力 计算公式 代码实现 class SelfAttention(nn.Module):def __init__(self, embed_size, heads):super(SelfAttention, self).__init__()self.e…

Hive数据仓库

数据仓库概念与起源发展由来 数仓概念 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;&#xff0c;是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面相分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持…

【组内工作】木马回联

文章目录 C2服务器安装和运行方法CrossC2运行方法sliver运行方法empire安装方法DeimosC2安装教程TrevorC2安装教程&#xff1a; C2服务器的流量特征CrossC21. 心跳包2. 命令3. ja3/ja3s Sliver1. http2. https empirehttphttps DeimosC2https TrevorC2 C2服务器安装和运行方法 …

vue 使用vue-json-viewer 展示 JSON 格式的数据

npm install vue-json-viewer --save<el-button type"primary" click"previewClick">预览</el-button><el-dialog title"预览" :visible.sync"previewVisible" width"70%"><viewer ref"viewer&qu…