The 19th Zhejiang Provincial Collegiate Programming Contest vp

news2024/11/24 16:47:28

和队友冲了这场,极限6题,重罚时铁首

怎么说,前面的A题我贡献了太多的罚时,然后我的G题最短路调了一万年,因为太久没写了,甚至把队列打成了优先队列,没把head数组清空完全,都是我的锅呜呜呜

队友很给力,签到虽然卡了一会但是都开出来了,M题队友直接写了个两百多行的大模拟,太强了,虽然不是正解但是依然感觉很牛逼

I题因为时间原因直接去吃饭了,不然感觉肯定能开出来,其实就是个字符串哈希+签到难度 的博弈

vp的感觉就是:签到交的太快,应该让队友check一下再交,不差这点时间,不然罚时太多

感觉能7题啊

没关系,还有一个月,来得及!

Dashboard - The 19th Zhejiang Provincial Collegiate Programming Contest - Codeforces

A. JB Loves Math

奇偶性分类讨论

很重要的性质:加/减奇数次奇数奇偶性就会变,否则奇偶性都不变

题意:

给定a和b,让你选定一个奇数x和一个偶数y,每次操作可以让a加上x或让a减去y,问最少几次操作可以使a变成b

思路:

一开始想的是小分类讨论:

但是显然不是这样写的,当a<b时,当b-a是奇数时,直接加奇数即可,如果b-a是偶数的时候,如果b-a能被两个奇数表示,那么操作次数就是2次,否则就是加两次奇数使得a大于b,这样奇偶性就和b一样了,这样就能减个偶数了,这样子就是三次操作

Code:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <map>
#include <unordered_map>
#include <queue>
#include <set>
#define int long long
using namespace std;
using i64 = long long;
const int mxn=1e5+10;
const int mxe=1e6+10;
const int mod=1e9+7;

int a,b;
void solve(){
    cin>>a>>b;
    if(a<b){
        if((b-a)%2==1) cout<<1<<'\n';
        else {
            if(((b-a)/2)%2)cout<<2<<'\n';
            else cout<<3<<endl;
        }
    }else if(a>b){
        if((a-b)%2==1) cout<<2<<'\n';
        else cout<<1<<'\n';
    }else{
        cout<<0<<'\n';
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    while(__--)solve();return 0;
}

B JB Loves Comma

字符串模拟

直接放代码:

#include<bits/stdc++.h>
using namespace std;
char s[200005],x[]="cjb";
int n,l,i,j,k,m;
int main()
{
    cin>>s;
    l=strlen(s);
    for(i=0;i<=l-2;i++){
        if(strncmp(s+i,x,3)==0){printf("%c%c%c,",s[i],s[i+1],s[i+2]);i+=2;}
        else printf("%c",s[i]);
    }
    for(;i<l;i++)printf("%c",s[i]);
}

C. JB Wants to Earn Big Money

模拟

题意:

如果a数组里元素小于x,答案++

如果b数组里面元素大于x,答案++

思路:

直接模拟

Code:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <map>
#include <unordered_map>
#include <queue>
#include <set>
#define int long long
using namespace std;
using i64 = long long;
const int mxn=1e5+10;
const int mxe=1e6+10;
const int mod=1e9+7;

int n,m,x;
int a[mxn],b[mxn];
void solve(){
    cin>>n>>m>>x;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=m;i++) cin>>b[i];
    int ans=0;
    for(int i=1;i<=n;i++){
        if(a[i]>=x) ans++;
    }
    for(int i=1;i<=m;i++){
        if(b[i]<=x) ans++;
    }
    cout<<ans<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;//cin>>__;
    while(__--)solve();return 0;
}

L. Candy Machine

Problem - L - Codeforces

二分+贪心

题意:

给定一个集合,让你选取一个子集,使得其子集中的元素大于平均值的元素个数尽可能多,问最多能有多少元素

思路:

因为是个集合,所以考虑排序或哈希

因为要使满足条件的元素个数尽可能多,那么就是让平均值尽可能小,那么就是尽可能选小的数,因此考虑从小到大排序去选,子集一定是前缀。

那么怎么统计出值大于平均值的个数,注意到这个问题具有二段性,右边的都大于,左边的都小于等于,因此直接去二分即可

Code:

#include<bits/stdc++.h>
using namespace std;
const int mxn=1e6+10;
#define ll long long
ll n,a[mxn],ans,b[mxn];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++) b[i]=b[i-1]+a[i];
    for(int i=2;i<=n;i++){
        ll x=upper_bound(a+1,a+i+1,b[i]*1.0/(double)i)-a;
        ans=max(ans,i-x+1);
    }
    cout<<ans<<'\n';
    return 0;
}

M. BpbBppbpBB

大模拟 or 解方程

题意:

就是让你count给定的图形里面有多少C Type 和 S Type

思路:

不知道怎么做啊,正解好像是解方程,还好队友是模拟天才,写了两百多行的大模拟就过了

真 的 牛 逼

Code:

#include<bits/stdc++.h>
using namespace std;
int n,l,j,i,k,m,h,g,f,x,y;
char s1[1200][1200],a[20][20]={"##########","##########","##########","####..####","###....###","###....###","####..####","##########","##########","##########","####..####","###....###","###....###","####..####","##########","##########","##########"},b[20][20]={"#################","#################","#################","####..#####..####","###....###....###","###....###....###","####..#####..####","#################","#################","#################"},c[20][20]={"##########","##########","##########","####..####","###....###","###....###","####..####","##########","##########","##########"},d[]="###",e[]="####";
int main()
{
    scanf("%d %d",&n,&m);
    for(i=0;i<n;i++){
        scanf("%s",s1[i]);
        // strcpy(s1[i],s1[i]);
    }
    for(i=0;i<n-9;i++){
        for(j=0;j<m-9;j++){
            if(s1[i][j]==0)continue;
            for(k=i;k<i+10;k++){
                if(strncmp(s1[k]+j,b[k-i],17))break;
            }
            if(k==i+10){
                x++;
                for(h=i;h<i+10;h++){
                    memset(s1[h]+j,0,17);
                }
                j+=16;
            }
            else if(i+17<=n){
                for(k=i;k<i+17;k++){
                    if(strncmp(s1[k]+j,a[k-i],10))break;
                }
                if(k==i+17){
                    x++;
                    for(h=i;h<i+17;h++){
                        memset(s1[h]+j,0,10);
                    }
                    j+=9;
                }
            }
        }
    }
    for(i=0;i<n-9;i++){
        for(j=0;j<m-9;j++){
            if(s1[i][j]==0)continue;
            for(k=i;k<i+10;k++){
                if(strncmp(s1[k]+j,c[k-i],10))break;
            }
            if(k==i+10){
                if(i-4>=0){
                    for(h=i-4;h<i;h++){
                        if(strncmp(s1[h]+j,d,3))break;
                    }
                    if(h==i){
                        y++;
                        for(h=i-4;h<i;h++){
                            memset(s1[h]+j,0,3);
                        }
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        j+=9;
                        continue;
                    }
                    for(h=i-4;h<i;h++){
                        if(strncmp(s1[h]+j+7,d,3))break;
                    }
                    if(h==i){
                        y++;
                        for(h=i-4;h<i;h++){
                            memset(s1[h]+j+7,0,3);
                        }
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        j+=9;
                        continue;
                    }
                }
                if(i+4<n){
                    for(h=i+1;h<i+5;h++){
                        if(strncmp(s1[h]+j,d,3))break;
                    }
                    if(h==i+5){
                        y++;
                        for(h=i+1;h<i+5;h++){
                            memset(s1[h]+j,0,3);
                        }
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        j+=9;
                        continue;
                    }
                    for(h=i+1;h<i+5;h++){
                        if(strncmp(s1[h]+j+7,d,3))break;
                    }
                    if(h==i+5){
                        y++;
                        for(h=i+1;h<i+5;h++){
                            memset(s1[h]+j+7,0,3);
                        }
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        j+=9;
                        continue;
                    }
                }
                if(j-4>=0){
                    for(h=i;h<i+3;h++){
                        if(strncmp(s1[h]+j-4,e,4))break;
                    }
                    if(h==i+3){
                        y++;
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        for(h=i;h<i+3;h++){
                            memset(s1[h]+j-4,0,4);
                        }
                        j+=9;
                        continue;
                    }
                    for(h=i+7;h<i+10;h++){
                        if(strncmp(s1[h]+j-4,e,4))break;
                    }
                    if(h==i+10){
                        y++;
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        for(h=i+7;h<i+10;h++){
                            memset(s1[h]+j-4,0,4);
                        }
                        j+=9;
                        continue;
                    }
                }
                if(j+4<m){
                    for(h=i;h<i+3;h++){
                        if(strncmp(s1[h]+j+10,e,4))break;
                    }
                    if(h==i+3){
                        y++;
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        for(h=i;h<i+3;h++){
                            memset(s1[h]+j+10,0,4);
                        }
                        j+=9;
                        continue;
                    }
                    for(h=i+7;h<i+10;h++){
                        if(strncmp(s1[h]+j+10,e,4))break;
                    }
                    if(h==i+10){
                        y++;
                        for(h=i;h<i+10;h++)memset(s1[h]+j,0,10);
                        for(h=i+7;h<i+10;h++){
                            memset(s1[h]+j+10,0,4);
                        }
                        j+=9;
                        continue;
                    }
                }
            }
        }
    }
    // for(i=0;i<n;i++){
    //     for(j=0;j<m;j++){
    //         printf("%3d",s1[i][j]);
    //     }
    //     cout<<endl;
    // }
    printf("%d %d",x,y);
}
    

G. Easy Glide

Problem - G - Codeforces

最短路

题意:

给定起点和终点,可以借助一些其他点进行加速,问你起点到终点最快能多久

思路:

应该一眼最短路板子题的,当时还犹豫了一下

直接按时间作为边权建图然后跑最短路就行了

但是我调了很久很久,甚至把优先队列写成了队列,还没把head数组清空完全

是谁不会写最短路我不说

还好最后AC了

Code:

#include <bits/stdc++.h>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <math.h>
#include <algorithm>
#include <vector>
#include <map>
#include <unordered_map>
#include <queue>
#include <set>
#define int long long
using namespace std;
using i64 = long long;
const int mxn=1e6+10;
const int mxe=1e6+10;
const int mod=1e9+7;
const double eps=1e-4;
struct Point{
    int x,y;
}p[mxn];
struct ty{
    int to,next;
    double w;
}edge[mxe<<1];
struct ty2{
    int x;
    double dis;
    bool operator<(const ty2 &a) const{
        return a.dis<dis;
    }
};
priority_queue<ty2> q;
int n,tot=0,v1,v2;
int head[mxn],vis[mxn];
double dis[mxn];
void add(int u,int v,double w){
    edge[tot].w=w;
    edge[tot].to=v;
    edge[tot].next=head[u];
    head[u]=tot++;
}
void init(){
    tot=0;
    for(int i=0;i<mxn;i++) head[i]=-1;
}
double dist(int a,int b){
    return sqrt((p[a].x-p[b].x)*(p[a].x-p[b].x)+(p[a].y-p[b].y)*(p[a].y-p[b].y));
}
void dij(int s,int t){
    for(int i=0;i<=n+2;i++) dis[i]=1e9;
    memset(vis,0,sizeof(vis));
    q.push({s,0});
    dis[s]=0;
    while(!q.empty()){
        ty2 u=q.top();
        q.pop();
        if(vis[u.x]) continue;
        vis[u.x]=1;
        //cout<<u.x<<'\n';
        for(int i=head[u.x];~i;i=edge[i].next){
            if(vis[edge[i].to]) continue;
            //if(u.x==3) cout<<edge[i].to<<'\n';
            if(dis[edge[i].to]>dis[u.x]+edge[i].w){
                dis[edge[i].to]=dis[u.x]+edge[i].w;
                if(dis[edge[i].to]-0.000412311<eps){
                    int pp=1;
                }
                q.push({edge[i].to,dis[edge[i].to]});
            }
        }
    }
}
void solve(){
    cin>>n;
    init();
    for(int i=1;i<=n;i++) cin>>p[i].x>>p[i].y;
    cin>>p[n+1].x>>p[n+1].y>>p[n+2].x>>p[n+2].y;
    cin>>v1>>v2;
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            add(i,j,max( dist(i,j)/(v2*1.0)  ,  (dist(i,j)-3*v2)/v1*1.0+3));
            add(j,i,max( dist(i,j)/(v2*1.0)  ,  (dist(i,j)-3*v2)/v1*1.0+3));
            //cout<<i<<" "<<j<<" "<<max( dist(i,j)/(v2*1.0)  ,  (dist(i,j)-3*v2)/v1*1.0+3)<<'\n';
        }
    }
    //cout<<'\n';
    for(int j=1;j<=n+2;j++){
        add(n+1,j,dist(n+1,j)/(v1*1.0));
        add(j,n+1,dist(n+1,j)/(v1*1.0));
        //cout<<n+1<<" "<<j<<" "<<dist(n+1,j)/(v1*1.0)<<'\n';
    }
    for(int i=1;i<=n+2;i++){
        if(i==n+1) continue;
        add(i,n+2,max( dist(i,n+2)/(v2*1.0)  ,  (dist(i,n+2)-3*v2)/v1*1.0+3));
        add(n+2,i,max( dist(i,n+2)/(v2*1.0)  ,  (dist(i,n+2)-3*v2)/v1*1.0+3));
        //cout<<i<<" "<<n+2<<" "<<max( dist(i,n+2)/(v2*1.0)  ,  (dist(i,n+2)-3*v2)/v1*1.0+3)<<'\n';
    }
    //cout<<'\n';
    dij(n+1,n+2);
    //cout<<dis[2]<<'\n';
    cout<<fixed<<setprecision(9)<<dis[n+2]<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;//cin>>__;
    while(__--)solve();return 0;
}

I. Barbecue

简单博弈+字符串哈希判回文

Problem - I - Codeforces

题意:

思路:

谁是赢家肯定和字符串size的奇偶性有关,那么剩下的问题在于怎么快速判断一个字符串是回文串

一个常用的套路就是字符串哈希判回文串

我们队无人会串串,该加训串串题了

Code:

#include <bits/stdc++.h>
using namespace std;
const int mxn=1e6+10;
const int P=131;
string s;
int n,q,l,r;
int p1[mxn],h1[mxn],h2[mxn];
int get2_hash(int l,int r){
    return h2[l]-h2[r+1]*p1[r-l+1];
}
int get1_hash(int l,int r){
    return h1[r]-h1[l-1]*p1[r-l+1];
}
void solve(){
    cin>>n>>q>>s;
    s=" "+s;
    p1[0]=1;
    for(int i=1;i<=n;i++){
        p1[i]=p1[i-1]*P;
        h1[i]=h1[i-1]*P+s[i];
    }
    for(int i=n;i>=1;i--){
        h2[i]=h2[i+1]*P+s[i];
    }
    while(q--){
        cin>>l>>r;
        if(get1_hash(l,r)==get2_hash(l,r)) cout<<"Budada"<<'\n';
        else{
            if((r-l+1)%2==1) cout<<"Putata"<<'\n';
            else cout<<"Budada"<<'\n';
        }
    }
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;//cin>>__;
    while(__--)solve();return 0;
}

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

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

相关文章

搭载英伟达Jetson Orin的Allspark 2全新亮相,算力高达100TOPS!

Allspark 2 系列AI边缘计算机 Allspark 2经过设计优化的铝合金外壳&#xff0c;内置静音涡轮风扇&#xff0c;散热优秀。尺寸102.5X62.5X31mm&#xff0c;整机重量188g。 相比Allspark 1&#xff0c;2代整机轻了25克&#xff0c;更加轻薄。 在机身更加轻薄的情况下&#xff0c…

1497. 树的遍历

文章目录1.二叉树的遍历2.二叉树的构造3.例题3.1不使用BFS3.2使用BFS二叉树的构造&#xff1a;没有中序遍历则无法唯一构造1.二叉树的遍历 2.二叉树的构造 3.例题 一个二叉树&#xff0c;树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历&#xff0c;请你输出它…

蓝桥杯训练day2

day21.二分(1)789. 数的范围(2)四平方和&#xff08;1&#xff09;哈希表做法&#xff08;2&#xff09;二分做法(3)1227. 分巧克力&#xff08;4&#xff09;113. 特殊排序(5)1460. 我在哪&#xff1f;2.双指针(1)1238. 日志统计(2)1240. 完全二叉树的权值&#xff08;3&#…

koa-vue的分页实现

1.引言 最近确实体会到了前端找工作的难处&#xff0c;不过大家还是要稳住心态&#xff0c;毕竟有一些前端大神说的有道理&#xff0c;前端发展了近20年&#xff0c;诞生了很多leader级别的大神&#xff0c;这些大神可能都没有合适的坑位&#xff0c;我们新手入坑自然难一些&am…

HD-G2L-IOT V2.0核心板MPU压力测试

1. 测试对象HD-G2L-IOT基于HD-G2L-CORE V2.0工业级核心板设计&#xff0c;双路千兆网口、双路CAN-bus、2路RS-232、2路RS-485、DSI、LCD、4G/5G、WiFi、CSI摄像头接口等&#xff0c;接口丰富&#xff0c;适用于工业现场应用需求&#xff0c;亦方便用户评估核心板及CPU的性能。H…

PMP高分上岸人士的备考心得,分享考试中你还不知道的小秘密

上岸其实也不是什么特别难的事情&#xff0c;考试一共就180道选择题&#xff0c;题目只要答对60.57%就可以通过考试&#xff0c;高分通过没在怕的&#xff0c;加油备考呀朋友们&#xff01; 这里也提一嘴&#xff0c;大家备考的时候比较顾虑的一个问题就是考试究竟要不要报班…

js循环判断的方法

js循环判断的方法if语句if else语句if else if else if......三元表达式switchswitch语句和if语句的区别for循环while循环do while循环for inforEachfor of性能问题if语句 条件满足就执行&#xff0c;不满足就不执行 if(条件){语句}if else语句 条件满足&#xff0c;执行语句…

认识3D旋转变换矩阵

前文输出了cesium的Rotation变量&#xff0c;一个矩阵&#xff1b;把这矩阵写下来看下&#xff1b; 0.99939 -0.034899 0 0 0.034899 0.99939 0 0 0 0 1 0 0 0 0 1 看一下3D数学的相关描述&#xff1b;…

周赛335(模拟、质因子分解、分组背包)

题解&#xff1a;0x3f https://leetcode.cn/problems/number-of-ways-to-earn-points/solution/fen-zu-bei-bao-pythonjavacgo-by-endlessc-ludl/ 文章目录周赛335[6307. 递枕头](https://leetcode.cn/problems/pass-the-pillow/)模拟[6308. 二叉树中的第 K 大层和](https://le…

扬帆优配|本周限售股解禁规模不足300亿元,这8家公司解禁压力大

本周限售股解禁规模环比大降至300亿元之下。 Wind数据显示&#xff0c;除掉新上市公司&#xff0c;本周A股商场共有36家公司限售股解禁&#xff0c;解禁数量27.69亿股&#xff0c;以最新收盘价核算&#xff08;下同&#xff09;&#xff0c;解禁市值268.81亿元。 解禁市值超越…

【第二章 @RequestMapping注解(value,method,params属性),springMVC支持ant风格的路径,支持路径中的占位符】

第二章 RequestMapping注解&#xff08;value&#xff0c;method&#xff0c;params属性&#xff09;&#xff0c;springMVC支持ant风格的路径&#xff0c;支持路径中的占位符 1. RequestMapping注解&#xff1a; &#xff08;1&#xff09; RequestMapping注解的作用就是将请…

数据结构与算法之桶排序

目录桶排序概念代码实现时间复杂度桶排序概念 桶排序 &#xff08;Bucket sort&#xff09;或所谓的箱排序&#xff0c;是一个排序算法&#xff0c;工作的原理是将数组分到有限数量的桶里。每个桶再个别排序&#xff08;有可能再使用别的排序算法或是以递归方式继续使用桶排序…

如何根据实际需求选择合适的三维实景建模方式?

随着实景三维中国建设的推进&#xff0c;对三维实景建模的数字化需求大幅增加。由于三维实景建模具有采集速度快、计算精度高等建模优势&#xff0c;引起了各个行业的高度关注。三维实景建模是一种应用数码相机或者激光扫描仪对现有场景进行多角度环视拍摄&#xff0c;然后利用…

进制转换(详解二进制、八进制、十进制、十六进制的相互转换)

目录二进制运算规则十进制的转换二进制数、八进制数、十六进制数的相互转换&#x1f458;什么是数制 用进位的原则进行计数称为进位计数制&#xff0c;简称数制。进位计数制的特点是表示数值大小的数码与它所处的位置有关&#xff0c;每种数制都包含两个基本的要素&#xff1a;…

WPF WrapPanel、UniformGrid、DockPanel介绍

WPF WrapPanel、UniformGrid、DockPanel介绍 WrapPanel WrapPanel , 具有在有限的容器范围内, 可以自动换行, 或者换列处理。具体则取决于WrapPanel的排列方式 (Orientation)。 Orientation"Horizontal"时各控件从左至右罗列&#xff0c;当面板长度不够时&#xff…

JMM JVM 垃圾回收

目录 一、JMM内存模型 1、定义 2、JMM的三大特性(可见性原子性有序性) 2.1 可见性 2.2 原子性 2.3 有序性 3、JMM中的8种原子操作 二、JVM 1、JVM体系结构 2、JVM参数调优 2.1 三大参数类型 2.2 九个调优参数 三、垃圾回收器 1、4种GC算法(引用计数 /复制拷贝/标…

深度学习pytorch实战三:VGG16图像分类篇自建数据集图像分类三类

1.自建数据集与划分训练集与测试集 2.模型相关知识 3.model.py——定义AlexNet网络模型 4.train.py——加载数据集并训练&#xff0c;训练集计算损失值loss&#xff0c;测试集计算accuracy&#xff0c;保存训练好的网络参数 5.predict.py——利用训练好的网络参数后&#xff0c…

【Taro开发】-文字展开收起组件(十五)

Taro小程序开发 系列文章的所有文章的目录 【Taro开发】-初始化项目&#xff08;一&#xff09; 【Taro开发】-路由传参及页面事件调用&#xff08;二&#xff09; 【Taro开发】-taro-ui&#xff08;三&#xff09; 【Taro开发】-带token网络请求封装&#xff08;四&#x…

Sonar:Win10搭建SonarQube9.8服务

需求描述 公司为项目代码配置了Sonar检测&#xff0c;最初只是想调研在VSCode中同步远程检测的方法&#xff08;现在请参考Sonar&#xff1a;VSCode配置SonarLint/SonarLint连接SonarQube&#xff09;&#xff1b;结果并没有找到靠谱的教程。。在度娘的信息海洋胡乱扑腾两天后…

Docker(七)--Docker数据卷管理及插件

文章目录一、Docker 数据卷管理1.bind mount2.docker managed volume3.bind mount与docker managed volume对比二、跨节点存储convoy卷插件一、Docker 数据卷管理 在实际使用过程中&#xff0c;我们需要把容器和数据进行隔离&#xff0c;因为容器在使用过程中可能随时要进行销…