8.17模拟赛题解

news2024/9/29 1:17:14

在这里插入图片描述
先考虑空间能不能把N个座位放好 最优的方式就是挨着摆放
那么一排能摆放Q=L/x的商个椅子 ,然后计算摆放完N个座位需要多少排,N/Q 向上取整
计算所需要的排总共占据多宽,讨论有没有超过W,然后讨论剩余空间还能放几条走廊
如果走廊数量为0,那么无解。最后一条走廊理论上可以挨着两排位置,所以说只需要计算理论上最多能有多少座位挨着走廊,然后跟实际座位数取min即可 ,注意一排可能一个座位也放不了,要讨论

#include <bits/stdc++.h>
#define FIN freopen("in.txt", "r", stdin)
#define FOUT freopen("output/out.txt", "w", stdout)
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
typedef long double ld;

int n,l,w,x,y,a;

int main()
{
   // freopen("aisle.in","r",stdin);
    //freopen("aisle.out","w",stdout);
    cin>>n>>l>>w>>x>>y>>a;
    int numl=l/x;
    int numr;
    if (numl==0) {puts("-1");return 0;}
    if (n%numl==0) numr=n/numl;
    else numr=n/numl+1;
    int z=numr*y;
    if (w-z>=a)
    {
        int num=(w-z)/a;
        if (num<=numr/2) printf("%d\n",min(n,numl*2*num));
        else printf("%d\n",n);
    }
    else puts("-1");
    return 0;
}

在这里插入图片描述
首先要明白,B进制下D位数的范围是哪到哪,不清楚的可以拿十进制推一推
最小值就是BD-1 ,最大值是BD -1
所以要想知道有多少个数满足两个条件,相当于取区间交的长度 计算L R做比较即可
注意超过1e18都不算,为了防止计算溢出,通常使用除法来判断。左端点溢出一定无解,右端点溢出就让它成为1e18

当然,本题可以难度继续升级,移除1e18限制 。

#include<bits/stdc++.h>
using namespace std;
int j,b1,d1,b2,d2;
unsigned long long l1=1,r1,l2=1,r2;
bool f;
int main() {
	cin>>b1>>d1>>b2>>d2;
	r1=r2=1;
	for(int i=2; i<=d1; i++) {
		if(l1<=1e18/b1)l1*=b1;
		else {
			cout<<0;
			return 0;
		}
	}
	for(int i=1; i<=d1; i++)
		if(r1<=1e18/b1)r1*=b1;
		else {
			r1=1e18;
			r1++;
			break;
		}
	r1--;
	for(int i=2; i<=d2; i++) {
		if(l2<=1e18/b2)l2*=b2;
		else {
			cout<<0;
			return 0;
		}
	}
	for(int i=1; i<=d2; i++)
		if(r2<=1e18/b2)r2*=b2;
		else {
			r2=1e18;
			r2++;
			break;
		}
	r2--;
	if(l1>l2) {
		swap(l1,l2);
		swap(r1,r2);
	}
	if(l1<=l2&&r2<=r1)cout<<r2-l2+1;
	else if(l2<=l1&&r1<=r2)cout<<r1-l1+1;
	else if(r1>=l2)cout<<r1-l2+1;
	else cout<<0;
	return 0;
}

在这里插入图片描述
相信学了DFS的同学多少还是能做一点分数的,暴力DFS 相当于求12的排列然后代入对应编号的边去检查,小范围内还是可以拿分的。

实际上本题T组数据,每次都这样子去DFS肯定行不通的,我们考虑对12的排列的寻找进行优化

考虑编号摆放
1 2 3 4 5 6 7 8 9 10 11 12
3 2 1 6 5 4 9 8 7 12 11 10
10 11 12 7 8 9 6 5 4 1 2 3

不难发现这几种不同的排列,实际上产生的四个三角形是一模一样的所以说我们要尽量剔除这种本质相同的排列情况。如何DFS剪枝?
回忆一下最初的一个问题,N个数选R个数并且要求都按字典序输出,保证不重复不遗漏,所以说我们DFS寻找本质不同的12排列时,外部4个块要保证有序,且每个块内部也要保证有序,这样子就能不重复不遗漏。
预处理DFS寻找本质不同的12排列存起来,每次查询的时候直接枚举排列带进去检查

#include<cstdio>  
#include<iostream>  
#include<algorithm>  
#include<cstdlib>  
#include<cstring>
#include<string>
#include<climits>
#include<vector>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<ctime>
#define LL long long
#define inf 0x3f3f3f3f
#define P pair<int,int>

using namespace std;

inline char nc(){
    /* 
  static char buf[100000],*p1=buf,*p2=buf;
  if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }
  return *p1++;
    */return getchar();
}
  
inline void read(int &x){
  char c=nc();int b=1;
  for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;
  for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}
  
inline void read(LL &x){
  char c=nc();LL b=1;
  for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;
  for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}
 
inline void read(char &x){
  for (x=nc();!(x=='('||x==')');x=nc());
}

inline int read(char *s)
{
    char c=nc();int len=1;
    for(;!(c=='0'||c=='1');c=nc()) if (c==EOF) return 0;
    for(;(c=='0'||c=='1');s[len++]=c,c=nc());
    s[len++]='\0';
    return len-2;
}
int wt,ss[19];
inline void print(int x){
    if (x<0) x=-x,putchar('-'); 
    if (!x) putchar(48); else {
    for (wt=0;x;ss[++wt]=x%10,x/=10);
    for (;wt;putchar(ss[wt]+48),wt--);}
}
inline void print(LL x){
    if (x<0) x=-x,putchar('-');
    if (!x) putchar(48); else {for (wt=0;x;ss[++wt]=x%10,x/=10);for (;wt;putchar(ss[wt]+48),wt--);}
}

int T,n,m,s,a[20],b[5],res,ans[5][5];
int f[15500*24][20];

bool check(int x,int y,int z)
{
    if (x+y<=z) return false;
    if (x+z<=y) return false;
    if (y+z<=x) return false;
    return true;
}

void dfs(int x)
{
    if (x==13)
    {
        if (a[1]<a[4]&&a[4]<a[7]&&a[7]<a[10])
        {
            s++;
            for (int i=1;i<=12;i++)
                f[s][i]=a[i];
        }
        return ;
    }
    for (int i=1;i<=12;i++)
        if (b[i]==0)
        {
            b[i]=1;
            a[x]=i;
            if (x%3==0)
            {
                if (a[x]>a[x-1]&&a[x-1]>a[x-2]) dfs(x+1);
            }
            else dfs(x+1);
            b[i]=0;
        }
}

void solve(int b[])
{
    int s=0;
    for(int i=1;i<=4;i++)
        if (check(a[b[i*3-2]],a[b[i*3-1]],a[b[i*3]])) s++;
    if (s>res)
    {
        res=s;    
    }
}

int main()
{
    read(T);
    int p=0;
    s=0;
	dfs(1);
    while(T--)
    {
        for (int i=1;i<=12;i++)
        read(a[i]);
        res=0;
		for (int i=1;i<=s;i++)
        solve(f[i]);
        printf("%d\n",res);
    }
    return 0;
}

在这里插入图片描述
一定要把题目读懂,题目的要求是什么,操作又是什么。
题目最终想让
A [ 1 ] = A [ m + 1 ] A[1]=A[m+1] A[1]=A[m+1]
A [ 2 ] = A [ m + 2 ] A[2]=A[m+2] A[2]=A[m+2]
A [ m + 1 ] = A [ 2 m + 1 ] A[m+1]=A[2m+1] A[m+1]=A[2m+1]
A [ n − m ] = A [ n ] A[n-m]=A[n] A[nm]=A[n]
相当于每M个数为一个块,每个块内的第 i i i个位置最终都要变得一样
观察数据范围
在这里插入图片描述
凭直接来讲应该也是有40分是白送的(实际上也确实是暴力得分)
两个操作,一个是单点修改,一个是前缀区间翻转
不难发现完全没必要把同一段前缀区间做翻转两次,因为相当于没翻转
所以我们可以选择翻转M,2M,3M…KM 注意KM ≥ ≥ N
所以当M ≥ ≥ n \sqrt{n} n 时,K ≤ ≤ n \sqrt{n} n 所以小范围的时候,可以暴力DFS检查翻转哪些前缀区间,然后剩下不一样的点直接暴力修改,统计答案 40分到手。

但是当M ≤ ≤ n \sqrt{n} n 时就不能暴力搜索了 ,我们考虑状态转移
定义 d p [ i ] [ j ] [ 0 / 1 ] dp[i][j][0/1] dp[i][j][0/1]表示处理完第 i  最后一块 i~最后一块 i 最后一块并且都使得块内状态为 j 状态压缩 j状态压缩 j状态压缩 并且有没有使用区间翻转的最优操作次数
首先计算我们有多少块,直接按 N / M N/M N/M划分一下得到 K K K

在不使用操作2的情况下,既然 j j j是状态压缩后的结果,所以我们要讨论本状态下,块内的每个位置到底最终是放的是什么,如果跟本位置的符号不一样,那么就要使用操作1修改为 j j j状态对应的结果
最终得到 d p [ K ] [ j ] [ 0 ] dp[K][j][0] dp[K][j][0]的值

同理,在使用操作2的情况下,既然 j j j是状态压缩后的结果,所以我们要讨论本状态下,块内的每个位置到底最终是放的是什么,如果跟本位置的符号一样,因为现在使用了翻转 K ∗ M K*M KM这一段,所以如果未操作前 j j j状态对于某些位上的值已经匹配了,翻转后会变得不匹配,需要单点修改,那么就要使用操作1修改为 j j j状态对应的结果 。
举个例子, j j j状态为10101010 字符串当前这一段内容为10101010,虽然现在跟 j j j状态都是匹配的,但是翻转后,会全部失效,所以说本情况,匹配的时候反而需要修改。
最终得到 d p [ K ] [ j ] [ 1 ] dp[K][j][1] dp[K][j][1]的值

考虑如何向前面的块转移?倒着继续枚举K-1 K-2 …1
按照上面的方法计算,枚举最终状态,然后枚举对应的块内位置以及字符串内的实际位置
先统计单点修改的次数,考虑合并状态转移

 dp[k][j][0]=min(dp[k+1][j][0]+ans,dp[k+1][j][1]+1+ans);  
 [第K块] [k+1~最后一块] 进行合并     如果[k+1~最后一块]没使用前缀区间翻转就变成了j状态
 那么合并成[k~最后一块]没前缀区间翻转就变成了j状态的最小次数就有了一种方案 dp[k+1][j][0]+ans

但是还有另一种情况,[k+1~最后一块]使用了前缀区间翻转才变成了j状态,
因为会连带翻转第K块,所以要翻转另一段前缀区间抵消这个翻转,所以操作+1
然后再合并本块的操作次数ans  

后面的转移就同理了
最后最终状态一定在 d p [ 1 ] [ j ] [ 0 / 1 ] dp[1][j][0/1] dp[1][j][0/1]上,表示把[1~最后一块]翻转成为 j j j状态的最优次数 取min即可

#include<cstdio>  
#include<iostream>  
#include<algorithm>  
#include<cstdlib>  
#include<cstring>
#include<string>
#include<climits>
#include<vector>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<ctime>
#define LL long long
#define inf 0x3f3f3f3f
#define P pair<int,int>

using namespace std;

inline char nc(){
    /* 
  static char buf[100000],*p1=buf,*p2=buf;
  if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }
  return *p1++;
    */return getchar();
}
  
inline void read(int &x){
  char c=nc();int b=1;
  for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;
  for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}
  
inline void read(LL &x){
  char c=nc();LL b=1;
  for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;
  for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}
 
inline void read(char &x){
  for (x=nc();!(x=='('||x==')');x=nc());
}

inline int read(char *s)
{
    char c=nc();int len=1;
    for(;!(c=='0'||c=='1');c=nc()) if (c==EOF) return 0;
    for(;(c=='0'||c=='1');s[len++]=c,c=nc());
    s[len++]='\0';
    return len-2;
}
int wt,ss[19];
inline void print(int x){
    if (x<0) x=-x,putchar('-'); 
    if (!x) putchar(48); else {
    for (wt=0;x;ss[++wt]=x%10,x/=10);
    for (;wt;putchar(ss[wt]+48),wt--);}
}
inline void print(LL x){
    if (x<0) x=-x,putchar('-');
    if (!x) putchar(48); else {for (wt=0;x;ss[++wt]=x%10,x/=10);for (;wt;putchar(ss[wt]+48),wt--);}
}

int n,m,k,f[310][27000][2],ans,a[20];
char s[310];

void dfs(int x)
{
    if (x==k+1)
    {
        int zero[310],one[310],flag=0;
        for (int i=1;i<=m;i++)
            zero[i]=0,one[i]=0;
        for (int i=k;i>=1;i--)
        {	//检查要不要翻转一下 i*m   
            if (a[i]) flag=1-flag;
            if (flag==1)
            {					//某一段m翻转内  统计本段本位翻转后有多少0  1 
                for (int p=1,j=(i-1)*m+1;j<=min(n,i*m);j++,p++)
                    if (s[j]=='0') one[p]++;else zero[p]++;
            }
            else	//不翻 
            {
                for (int p=1,j=(i-1)*m+1;j<=min(n,i*m);j++,p++)
                    if (s[j]=='1') one[p]++;else zero[p]++;
            }
        }
        int res=0;
        for (int i=1;i<=m;i++)
        {
             res+=min(zero[i],one[i]);
           // else 	    res+=min(zero[i],one[i]);
        }
        for (int i=1;i<=k;i++)
            if (a[i]) res++;
        ans=min(ans,res);
        return ;
    }
    for (int i=0;i<=1;i++)
        a[x]=i,dfs(x+1);//处理第x段的反转   翻转还是不翻转  
}

int main()
{
    n=read(s);
    read(m);
    if (m<=sqrt(n))
    {
        int k=n/m;
        if (n%m!=0) k++;
        for (int i=0;i<(1<<m);i++)
        {
            int ans=0;
            for (int p=0,j=(k-1)*m+1;j<=min(n,k*m);j++,p++)
            {
                if ((i&(1<<p))){if (s[j]=='0') ans++;}
                else {if (s[j]=='1') ans++;}
            }
            f[k][i][0]=ans;ans=1;
            for (int p=0,j=(k-1)*m+1;j<=min(n,k*m);j++,p++)
                if ((i&(1<<p))){if (s[j]=='1') ans++;}
                else {if (s[j]=='0') ans++;}
            f[k][i][1]=ans;
        }
        for (k--;k>=1;k--)
            for (int i=0;i<(1<<m);i++)
            {
                int ans=0;
                for (int p=0,j=(k-1)*m+1;j<=min(n,k*m);j++,p++)
                    if ((i&(1<<p))){if (s[j]=='0') ans++;}
                    else {if (s[j]=='1') ans++;}
                f[k][i][0]=min(f[k+1][i][0]+ans,f[k+1][i][1]+1+ans);
                ans=0;
                for (int p=0,j=(k-1)*m+1;j<=min(n,k*m);j++,p++)
                    if ((i&(1<<p))){if (s[j]=='1') ans++;}
                    else {if (s[j]=='0') ans++;}
                f[k][i][1]=min(f[k+1][i][1]+ans,f[k+1][i][0]+1+ans);
            }
        int ans=min(f[1][0][0],f[1][0][1]);
        for (int i=0;i<(1<<m);i++)
            ans=min(ans,f[1][i][0]),
            ans=min(ans,f[1][i][1]);
        print(ans),puts("");
    }
    else
    {	//暴力反转  枚举   
        k=n/m;//  n/m检查最多把前k*m段翻转 
        if (n%m!=0) k++;
        ans=n;
        dfs(1);
        print(ans),puts("");
    }
    return 0;
}

路漫漫其修远兮,学习还需踏实勤奋

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蚓链数字化营销:连接心灵的新桥梁

在当今数字化浪潮汹涌的时代&#xff0c;营销领域也经历了一场深刻的变革。蚓链数字化营销&#xff0c;已不仅仅是一种推广手段&#xff0c;更是连接品牌与消费者心灵的新桥梁&#xff0c;让每一次互动都充满温度与价值。 曾经&#xff0c;品牌与消费者之间的沟通隔着一层厚厚…

小白零基础学数学建模系列-Day8-多目标规划问题与案例实践

文章目录 1. 引言1.1 优化问题的背景1.2 单目标规划与多目标规划的概述 2. 单目标规划2.1 定义2.2 应用场景2.3 求解方法2.4 案例&#xff1a;制造企业生产成本最小化的优化方案2.4.1 案例背景2.4.2 模型建立2.4.3 模型求解2.4.4 结果分析2.4.5 总结 3. 多目标规划3.1 定义3.2 …

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…

无人机测绘技术及应前景详解

无人机测绘技术是一种将无人机技术、遥感技术、地理信息系统&#xff08;GIS&#xff09;和计算机技术相结合&#xff0c;对自然地理要素或地表人工设施的形状、大小、空间位置及其属性等进行测定、采集并绘制成图的技术。它利用高精度传感器&#xff08;如激光雷达、航拍相机等…

遗传进化算法进行高效特征选择

在构建机器学习模型时&#xff0c;特征选择是一个关键的预处理步骤。使用全部特征往往会导致过拟合、增加计算复杂度等问题。因此&#xff0c;我们需要从原始特征集中选择一个最优子集&#xff0c;以提高模型的泛化性能和效率。 特征选择的目标是找到一个二元掩码向量&#xf…

液相色谱仪仪器校准怎么做?具体校准方法是什么?

液相色谱法概述 液相色谱仪是由输液系统、进样系统、分离系统、检测系统和数据处理系统等部分组成的分析仪器。液相色谱仪是根据样品之中各组分在色谱柱中的固定相和流动相间的分布或吸附特性的差异&#xff0c;流动相将样品带入色谱柱进行分离。由检测器检测&#xff0c;并由…

Java 和 .NET Core 在企业级应用开发中各有什么优势和劣势?看看AI是怎么回答的

Java 和 .NET Core 在企业级应用开发中各有什么优势和劣势&#xff1f;看看AI是怎么回答的 1.kimi 网址&#xff1a;https://kimi.moonshot.cn/ Kimi是北京月之暗面科技有限公司于2023年10月9日推出的一款智能助手&#xff0c;主要应用场景为专业学术论文的翻译和理解、辅助分析…

python基础语法 010 类和对象-6-1 继承定义

前提&#xff1a; 在真实世界中&#xff0c;类型之间可能存在范围包含关系&#xff0c;比如&#xff1a;人这个类型和亚洲人这个类型。 人是包括了亚洲人的&#xff0c;如果某人是员工亚洲人&#xff0c;那么它必定是一个人 这种关系&#xff0c;在编程语言中称为继承关系 比如…

Java Web|day5.MyBatis

MyBatis 定义 它是一款半自动的ORM持久层框架&#xff0c;具有较高的SQL灵活性&#xff0c;支持高级映射(一对一&#xff0c;一对多)&#xff0c;动态SQL&#xff0c;延迟加载和缓存等特性&#xff0c;但它的数据库无关性较低 **ORM: **Object Relation Mapping&#xff0c;…

数据库调优的流程及参考参数

1.数据库调优的流程&#xff1a; 1.1.调优思考流程&#xff1a; 1.对数据库进行调优的时候&#xff0c;我们可以依据以下步骤进行思考&#xff1a; 整个流程划分成了观察 (Show status) 和行动 (Action) 两个部分。字母 S 的部分代表观察&#xff08;会使用相应的分析工具&am…

全自由度控制八极电磁铁-吴贤铭智能工程学院案例

根据客户需求&#xff0c;上海天端实业有限公司设计八极电磁铁方案 八极电磁铁产品说明 八极电磁铁可在空间内部产生方向及强度可控的均匀磁场或梯度磁场&#xff0c;八组磁极以空间极轴布置&#xff0c;每组磁极可独立控制&#xff0c;磁场空间300mm直径球域。 八极电磁铁电…

electron 官网速通

前言&#xff1a;参考Electron 中文网。 核心知识点&#xff1a;有哪些进程&#xff0c;进程之间的通信&#xff0c;electron API 分类及怎么调用。 一、快速开始 1. 新建一个 my-electron 的文件夹。 2. 运行 npm init 创建 package.json 文件。 3. 填写 author 和 descr…

【Python-办公自动化】1秒提取多个word表格汇总至1个excel内

欢迎来到"花花 Show Python",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。 自我介绍: 我热衷于将复杂的技术概念以简单易懂…

苹果上架没有iphone、没有ipad也可以生成截屏

使用flutter、uniapp或其他跨平台框架开发ios的APP&#xff0c;上架的时候都会遇到一个问题&#xff0c;上架的时候需要各种尺寸的设备来做ios截屏。 比如目前最新的要求是&#xff0c;iphone需要三种不同尺寸的设备的截屏&#xff0c;假如支持ipad则还需要使用ipad 2代和ipad…

linux常用命令学习-ls命令

1.1 ls 命令 命令功能&#xff1a;查看文件信息。 在 ubuntu 上&#xff0c;一般都使用 ls 命令来查看文件信息&#xff0c;ls ,是 list 这个单词的缩写。在当前目录下输入 ls 命令&#xff0c;这样就会列出当前路径下的全部文件&#xff0c;例如我们要查看桌面上的文件&#x…

什么是硬件在环仿真?

硬件在环Hardware-in-the-loop&#xff08;HIL&#xff09;仿真是一种实时仿真。您可以使用HIL模拟来测试您的控制器设计。HIL模拟显示了控制器如何实时响应逼真的虚拟刺激。您还可以使用HIL来确定您的物理系统&#xff08;设备&#xff09;模型是否有效。 在HIL模拟中&#xf…

代码随想录训练营 Day34打卡 动态规划 part02 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树

代码随想录训练营 Day34打卡 动态规划 part02 一、力扣62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Fini…

5.vue中axios封装工程化

vue工程化中axios封装 视频演示地址&#xff1a;https://www.bilibili.com/video/BV121egeQEHg/?vd_source0f4eae2845bd3b24b877e4586ffda69a 通常我们封装需要封装request.js基础的发送请求工具类&#xff0c;再根据业务封装service类&#xff0c;service类是具体业务的接口…

Ps:首选项 - 暂存盘

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“暂存盘” Scratch Disks选项卡通过合理配置和管理暂存盘&#xff0c;可以显著提高 Photoshop 的运行性能&#xff0c;特别是在处理复杂的设计项目或大型图像文件时。选择合适…

Conformer解析

文章目录 前言Conformer encoder model architectureConvolution SubsamplingLinear & DropoutConformer BlocksFeed Forward ModuleMulti-Headed Self-Attention ModuleConvolution Module 前言 Conformer encoder model architecture 对于语音来说&#xff0c;整个架构…