Codeforces Round 946 (Div. 3) A~G

A.Phone Desktop (枚举)

题意:

A A A的手机有一个桌面(或称启动器)。桌面可以由多个屏幕组成。每个屏幕表示为大小为 5 × 3 5 \times 3 5×3 的网格,即五行三列。

x x x 个应用程序的图标大小为 1 × 1 1 \times 1 1×1 个单元格;这样的图标只占屏幕的一个单元格。还有 y y y 个应用程序的图标大小为 2 × 2 2 \times 2 2×2 个单元。;这样的图标在屏幕上占据了 4 4 4 个单元格的个方格。每个屏幕的每个单元格最多只能有一个图标。

A A A希望在最少的屏幕上放置应用程序图标。请帮她找出所需的最少屏幕数。

分析:

我们直接枚举需要放几个屏幕,再判断是否合法即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

int main() {
    int t;
    cin >> t;
    while (t--) {
        LL x, y;
        cin >> x >> y;
        for (int i = 0; i <= 200; i++) {
            if (i * 2LL < y)
                continue;
            LL ans = 7LL * i + (2LL * i - y) * 4LL;
            if (ans >= x) {
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}

B.Symmetric Encoding (模拟)

题意:

给出一个由小写字母组成的字符串 s s s 。使用以下算法对这个字符串进行编码:

  • 首先,构建一个新的辅助字符串 r r r ,该字符串由字符串 s s s 中所有不同的字母组成,按字母顺序书写;
  • 然后进行如下编码:将字符串 s s s 中的每个字符替换为字符串 r r r 中的对称字符(字符串 r r r 中的第一个字符将被最后一个字符替换,第二个字符将被从头开始的第二个字符替换,以此类推)。

例如, s s s = c o d e f o r c e s codeforces codeforces字符串的编码过程如下:

  • 字符串 r r r 得到 c d e f o r s cdefors cdefors
  • 第一个字符 s 1 s_1 s1 = c c c 被替换为 s s s
  • 第二个字符 s 2 s_2 s2 = o o o 被替换为 e e e
  • 第三个字符 s 3 s_3 s3 = d d d 被替换为 r r r
  • 最后一个字符 s 10 s_{10} s10 = s s s 被替换为 c c c
    因此,对字符串 s s s = c o d e f o r c e s codeforces codeforces 进行编码的结果是字符串 s e r o f e d s o c serofedsoc serofedsoc
    编写一个程序来执行解码,即从编码结果中还原出原始字符串 s s s

分析:

我们首先对字符串去重,再用 m a p map map存储映射关系,按照题意模拟即可。

代码:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        string a;
        cin >> a;
        map<char, int> mp;
        vector<char> tmp;
        for (auto t: a) {
            if (!mp[t]) {
                mp[t] = 1, tmp.push_back(t);
            }
        }
        sort(tmp.begin(), tmp.end());
        for (int i = 0; i < tmp.size(); i++) mp[tmp[i]] = i;
        for (auto &t: a) cout << tmp[tmp.size() - mp[t] - 1];
        cout << endl;
    }
    return 0;
}

C. Beautiful Triple Pairs (数学)

题意:

给出由 n n n个整数组成的数组 a a a。每个 j j j ( 1 ≤ j ≤ n − 2 1 \le j \le n - 2 1jn2 ) 都有一个由 [ a j , a j + 1 , a j + 2 ] [a_j, a_{j + 1}, a_{j + 2}] [aj,aj+1,aj+2] 组成的三元组。

如果一对三元组 b b b c c c 在一个位置上完全不同,即满足以下条件之一,那么它们就是美丽的:

  • b 1 ≠ c 1 b_1 \ne c_1 b1=c1 b 2 = c 2 b_2 = c_2 b2=c2 b 3 = c 3 b_3 = c_3 b3=c3
  • b 1 = c 1 b_1 = c_1 b1=c1 b 2 ≠ c 2 b_2 \ne c_2 b2=c2 b 3 = c 3 b_3 = c_3 b3=c3
  • b 1 = c 1 b_1 = c_1 b1=c1 b 2 = c 2 b_2 = c_2 b2=c2 b 3 ≠ c 3 b_3 \ne c_3 b3=c3

求写成的三元组 [ a j , a j + 1 , a j + 2 ] [a_j, a_{j + 1}, a_{j + 2}] [aj,aj+1,aj+2] 中优美的三元组对数。

分析:

假设三元组为 ( x , y , z ) (x,y,z) (x,y,z),当保证 x x x不同时, y , z y,z y,z相同时,结果为 [ ? , y , z ] [?, y, z] [?,y,z]的数量减去 [ x , y , z ] [x, y, z] [x,y,z]的数量。另外两种情况类似,所以我们只要用计算出三种情况的数量再减去 3 3 3倍的[x, y, z]$的数量即可。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        vector<int> a(n + 1);
        for (int i = 1; i <= n; i++)
            cin >> a[i];
        map<array<int, 3>, LL> mp;
        map<array<int, 2>, LL> mp1, mp2, mp3;
        LL ans = 0;
        for (int i = 3; i <= n; i++) {
            ans += mp1[{a[i - 2], a[i - 1]}];
            ans += mp2[{a[i - 2], a[i]}];
            ans += mp3[{a[i - 1], a[i]}];
            ans -= 3ll * mp[{a[i - 2], a[i - 1], a[i]}];
            mp1[{a[i - 2], a[i - 1]}]++;
            mp2[{a[i - 2], a[i]}]++;
            mp3[{a[i - 1], a[i]}]++;
            mp[{a[i - 2], a[i - 1], a[i]}]++;
        }
        cout << ans << endl;
    }
    return 0;
}

D.Ingenuity-2 (思维)

题意:

我们把火星表面想象成一个无限坐标平面。最初,"毅力-2 号 "漫游车和 "智慧-2 号 "直升机位于坐标为 ( 0 , 0 ) (0, 0) (0,0) 的点上。现在为它们专门开发了一套指令 s s s ,由以下类型的 n n n 指令组成:

  • N N N:向北移动一米(从点 ( x , y ) (x, y) (x,y) ( x , y + 1 ) (x, y + 1) (x,y+1) );
  • S S S:向南移动一米(从点 ( x , y ) (x, y) (x,y) ( x , y − 1 ) (x, y - 1) (x,y1) );
  • E E E:向东移动一米(从点 ( x , y ) (x, y) (x,y) 移至点 ( x + 1 , y ) (x + 1, y) (x+1,y) );
  • W W W:向西移动一米(从点 ( x , y ) (x, y) (x,y) 移至 ( x − 1 , y ) (x - 1, y) (x1,y) )。

每条指令必须由漫游车或直升机执行。此外,漫游车或直升机都必须至少执行一条指令。你的任务是分配指令,使直升机和漫游者在执行所有 n n n条指令后,最终到达相同的点,或者确定这是不可能的。

分析:

我们首先考虑不可能的情况:

  • n n n为奇数
  • N N N S S S E E E W W W的奇偶性不一致

  • n = 2 n=2 n=2,但两次行动不相同

除掉上述情况,我们可以按照以下顺序执行目标:
N N N S S S先分配给直升机,再分配给探测车。 E E E W W W的分配顺序则相反,这样我们可以保证符合题意。

代码:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        vector<char> a(n);
        map<char, int> m;
        for (auto &t: a) {
            cin >> t;
            m[t]++;
        }
        if (n % 2 || m['N'] % 2 != m['S'] % 2 || m['E'] % 2 != m['W'] % 2) {
            cout << "NO" << endl;
            continue;
        }
        if (n == 2 && a[0] != a[1]) {
            cout << "NO" << endl;
            continue;
        }
        vector<char> ans(n);
        for (auto tmp: {'N', 'S', 'E', 'W'}) {
            int flag = 0;
            if (tmp == 'N' || tmp == 'S') flag = 1;
            for (int i = 0; i < n; i++) {
                char it = a[i];
                if (it == tmp) {
                    if (flag) {
                        ans[i] = 'R';
                    } else {
                        ans[i] = 'H';
                    }
                    flag ^= 1;
                }
            }
        }
        for (auto &tmp: ans) cout << tmp;
        cout << endl;
    }
    return 0;
}

E.Money Buys Happiness(动态规划)

题意:

作为一名物理学家,查理喜欢用简单精确的语言来规划自己的生活。

在接下来的 m m m个月里,从没有钱开始,查理将努力工作,每月赚取 x x x英镑。在第 i i i ( 1 ≤ i ≤ m ) (1\le i \le m) (1im)里,将有一次机会,付出 c i c_i ci英镑的代价,获得幸福 h i h_i hi

不允许借贷。在第 i i i月赚到的钱只能在之后的第 j j j月( j > i j\gt i j>i)花掉。

既然物理学家不会编程,帮查理找出幸福的最大值吧。

分析:

从数据范围可以得知天数和可以得到的所有的幸福值数据范围很小,考虑 d p dp dp

状态 i i i表示第几天,状态 j j j表示幸福值。

d p i j dp_{ij} dpij代表 i i i天获得 j j j点幸福值所剩的最多钱。

每次把这个月剩的钱数和这个月新赚的的钱数加到下一个月。 如果当前的钱数可以购买今天的幸福值的时候,购买之后下个月对应的幸福度所剩的钱数和和我当前的钱数+本月的钱数-买本月幸福度所花费的钱取个最大值即可。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;
const LL N = 2e5 + 10;
const LL MIN = -1e18;
LL a[N], b[N];
LL dp[100][N];

void solve() {
    LL m, x;
    cin >> m >> x;
    LL sum = 0;
    for (LL i = 1; i <= m; i++) {
        cin >> a[i] >> b[i];
        sum += b[i];
    }
    for (LL i = 0; i <= m + 1; i++) {
        for (LL j = 0; j <= sum; j++) {
            dp[i][j] = MIN;
        }
    }
    dp[1][0] = 0;
    for (LL i = 1; i <= m; i++) {
        for (LL j = 0; j <= sum; j++)
            dp[i + 1][j] = dp[i][j] + x;
        for (LL j = 0; j <= sum; j++) {
            if (dp[i][j] >= a[i]) {
                dp[i + 1][j + b[i]] = max(dp[i + 1][j + b[i]], dp[i][j] + x - a[i]);
            }
        }
    }
    for (LL i = sum; i >= 0; i--) {
        if (dp[m + 1][i] >= 0) {
            cout << i << endl;
            return;
        }
    }
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

F.Cutting Game(模拟、数据结构)

题意:

爱丽丝和鲍勃又在玩一个游戏。他们有一个大小为 a × b a\times b a×b( 1 ≤ a , b ≤ 1 0 9 1\le a,b\le 10^9 1a,b109)的网格,网格上有 n n n个筹码,每个单元格中最多有一个筹码。位于第 x x x行和第 y y y列交点的单元格坐标为 ( x , y ) (x, y) (x,y)

爱丽丝先下一步棋,然后棋手们轮流下棋。在每一步棋中,棋手可以从剩余网格的开头或末尾切掉几行或几列(但不是全部),并为网格切掉部分的每一个筹码赢得一分。每一步棋都可以用字符"U"、“D”、"L"或"R"以及整数 k k k来描述:

  • 如果字符为"U",那么将剪切剩余的前 k k k行;
  • 如果字符为"D",则将剪切剩余的最后 k k k行;
  • 如果字符为"L",则将剪切剩余的前 k k k列;
  • 如果字符为"R",则将剪切剩余的最后 k k k列。

根据网格的初始状态和玩家的移动,确定爱丽丝和鲍勃分别获得的点数。

分析:

以横坐标正序,横坐标倒序,纵坐标正序和纵坐标倒序分别对于所有点建立优先队列。

对于询问,这里以"U"操作为例,首先可以计算出新的矩形上边界,然后就可以在优先队列中得到横坐标在被截取范围内的所有点。然后,只需要判断该点的纵坐标是否在当前未被截去的纵坐标范围内即可。

实现的时候用 m a p map map维护每个点是否被取走,实现方式是类似的。因为每个点只会被取到四次,总时间复杂度为
O ( n l o g n ) O(nlogn) O(nlogn)

代码:

#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
map<pair<LL,LL>,LL>mp;
void solve(){
    mp.clear();
    LL u,d,l,r,a,b,n,m;
    cin>>a>>b>>n>>m;
    u=1,d=a,l=1,r=b;
    priority_queue<pair<LL,LL>>q1,q2,q3,q4;
    for(LL i=1;i<=n;++i){
        LL x,y;cin>>x>>y;mp[make_pair(x,y)]=1;
        q1.push(make_pair(x,y));
        q2.push(make_pair(-x,y));
        q3.push(make_pair(y,x));
        q4.push(make_pair(-y,x));
    }
    LL ans[2]={};
    for(LL i=1;i<=m;++i){
        char op;
        LL t;
        cin>>op>>t;
        if(op=='U'){
            u+=t;
            while(!q2.empty()){
                auto U=q2.top();
                if(-U.first>=u)
                    break;
                if(mp[make_pair(-U.first,U.second)]){
                    mp[make_pair(-U.first,U.second)]=0;
                    ++ans[i%2];
                }
                q2.pop();
            }
        }
        if(op=='D'){
            d-=t;
            while(!q1.empty()){
                auto u=q1.top();
                if(u.first<=d)
                    break;
                if(mp[u]){
                    mp[u]=0;
                    ++ans[i%2];
                }
                q1.pop();
            }
        }
        if(op=='L'){
            l+=t;
            while(!q4.empty()){
                auto u=q4.top();
                if(-u.first>=l)
                    break;
                if(mp[make_pair(u.second,-u.first)]){
                    mp[make_pair(u.second,-u.first)]=0;
                    ++ans[i%2];
                }
                q4.pop();
            }
        }
        if(op=='R'){
            r-=t;
            while(!q3.empty()){
                auto u=q3.top();
                if(u.first<=r)
                    break;
                if(mp[make_pair(u.second,u.first)]){
                    mp[make_pair(u.second,u.first)]=0;
                    ++ans[i%2];
                }
                q3.pop();
            }
        }
    }
    cout<<ans[1]<<' '<<ans[0]<<endl;
}

int main(){
    LL t;
    cin>>t;
    while(t--)
        solve();
    return 0;
}

G.Money Buys Less Happiness Now(数据结构)

题意:

在这个版本的题目中,每个月只能购买 h i = 1 h_i=1 hi=1幸福,但月数却大大增加了。我们进入了量子幸福和时间膨胀的领域。

作为一名物理学家,查理喜欢用简单精确的语言来规划自己的生活。

在接下来的 m m m个月里,查理将从没有钱开始,努力工作,每月赚取 x x x英镑。在第 i i i个月 ( 1 ≤ i ≤ m ) (1\le i \le m) (1im)里,只有一次机会,付出 c i c_i ci英镑的代价来获得一个单位的幸福。每月不能购买超过一个单位。

不允许借贷。在第 i i i月赚到的钱只能在之后的第 j j j月花掉( j > i j\gt i j>i)。

帮查理找出可达到的最大幸福值吧。

分析:

本题用优先队列维护即可,每次如果当前费用足够直接购买,否则查看先前购买的最贵的是不是比当前的还贵,如果是的就不要前面那个,选择当前的幸福感,否则就放弃当前的物品。

代码:

#include<bits/stdc++.h>

typedef long long LL;
using namespace std;

void solve() {
    LL n, x, sum = 0;
    cin >> n >> x;
    priority_queue<LL> q;
    for (int i = 1; i <= n; i++, sum += x) {
        LL tmp;
        cin >> tmp;
        if (sum >= tmp) {
            q.push(tmp);
            sum -= tmp;
        } else if (q.size()) {
            LL pre = q.top();
            q.pop();
            if (pre > tmp) {
                sum += pre;
                sum -= tmp;
                q.push(tmp);
            } else
                q.push(pre);
        }
    }
    cout << q.size() << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

赛后交流

在比赛结束后,会在交流群中给出比赛题解,同学们可以在赛后查看题解进行补题。

群号: 704572101,赛后大家可以一起交流做题思路,分享做题技巧,欢迎大家的加入。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C51单片机开发--库函数

知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 目标 内容 开发过程回顾 使用库函数点灯 什么是库函数? 面向库函数和面向寄存器开发 使用delay模块延时 总结 前言 在嵌入式系统开发中&#xff0c;使用库函数是提高开发效率、简化编程的重要手段之一…

学习Uni-app开发小程序Day21

学习了评分组件、自定义导航栏 评分组件uni-rate 这是需要达到的效果图&#xff0c;这里先分析下效果图&#xff0c; 1、图片是从布局中间弹出的&#xff0c;那这里就要用到uni-popup &#xff0c;设置type从中间弹出 2、这个弹出的顶部和上一张的顶部布局是一样的&#xff0c…

Axios的使用简单说明

axios 请求方式和参数 axios 可以发送 ajax 请求&#xff0c;不同的方法可以发送不同的请求: axios.get&#xff1a;发送get请求 axios.post&#xff1a;发送post请求 axios.put&#xff1a;发送put请求 axios.delete&#xff1a;发送delete请求 无论哪种方法&#xff0c;第一…

怎么使用Stable diffusion中的models

Stable diffusion中的models Stable diffusion model也可以叫做checkpoint model&#xff0c;是预先训练好的Stable diffusion权重&#xff0c;用于生成特定风格的图像。模型生成的图像类型取决于训练图像。 如果训练数据中从未出现过猫的图像&#xff0c;模型就无法生成猫的…

应急响应-网页篡改-典型处置案例

内部系统主页被篡改 事件背景 2019年11月13日&#xff0c;某单位发现其内部系统的主页被篡改&#xff0c;应急响应工程师到达现场后对被入侵服务器进行检查&#xff0c;发现对方采用某开源CMS和第三方phpstudy进行环境部署。由于phpstudy默认不开启Web日志记录&#xff0c;因…

【Pandas】深入解析`pd.read_json()`函数

【Pandas】深入解析pd.read_json()函数 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#x…

SQL面试题练习 —— 计算次日留存率

题目 现有用户登录记录表&#xff0c;已经按照用户日期进行去重处理。以用户登录的最早日期作为新增日期&#xff0c;请计算次日留存率是多少。 样例数据 ----------------------- | user_id | login_date | ----------------------- | aaa | 2023-12-01 | | bbb …

负载箱:充电桩测试利器

随着新能源汽车的普及&#xff0c;充电桩的需求也在不断增长。为了保证充电桩的安全、稳定和高效运行&#xff0c;对其进行严格的测试是必不可少的。在这个过程中&#xff0c;负载箱就成为了充电桩测试的重要工具。 负载箱模拟电动汽车充电的设备&#xff0c;它可以模拟真实的充…

轻兔推荐 —— 一个好用的软件服务推荐平台

给大家推荐一个好用的的软件服务推荐平台&#xff1a;轻兔推荐 网站界面简洁大方&#xff0c;没有太多杂七杂八的功能和页面&#xff0c;有明暗主题色可以选择&#xff0c;默认为亮色&#xff0c;可在网站上方手动切换。 每工作日都会推荐一款软件&#xff0c;有时会加更&…

高铁Wifi是如何接入的?

使用PC端的朋友&#xff0c;请将页面缩小到最小比例&#xff0c;阅读最佳&#xff01; 在飞驰的高铁上&#xff0c;除了窗外一闪而过的风景&#xff0c;你是否好奇过&#xff0c;高铁Wifi信号如何连接的呢&#xff1f; 远动的火车可不能连接光纤吧&#xff0c;难道是连接的卫星…

深入理解python列表遍历:两种方法详解与实例

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、使用索引遍历列表 三、直接使用元素遍历列表 四、总结 一、引言 在编程过程…

python-数据可视化(总)

python-数据可视化 ** 数据可视化 指的是通过可视化表示来探索数据&#xff0c;它与数据挖掘**紧密相关&#xff0c;而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表&#xff0c;也可以是数以吉字节的数据 最流行的工具之一…

智慧冶金:TSINGSEE青犀AI+视频技术助力打造高效、安全的生产环境

一、建设背景 冶金行业因其特殊的生产环境和工艺要求&#xff0c;对安全生产、环境保护以及质量监控等方面有着极高的要求。因此&#xff0c;将视频智能监控技术引入冶金行业&#xff0c;不仅有助于提升生产效率&#xff0c;更能有效保障生产安全&#xff0c;降低事故风险。 …

[ARM-2D 专题] arm-2d项目简介

Arm-2D 是一个用于 Cortex-M 处理器上的 2.5D 图像处理的开源项目。 由ARM公司开发和维护&#xff0c;属于官方性质的项目&#xff0c;目前最新版本为V1.1.6. 2022年7月发布1.0的预览版&#xff0c; 2023年2月发布第一个正式版V1.1.1&#xff0c;近一年来快速迭代和功能增强&a…

基于序列深度学习模型的向量海岸线形状分类方法 2024.05

本文中提出了一个数据驱动的方法来分类的形状矢量海岸线&#xff0c;该方法利用基于序列的深度学习算法对海岸线矢量分段进行建模和分类。具体而言&#xff0c;首先将复杂的海岸线划分为一系列弯曲&#xff0c;并进一步提出了一组不同的特征来描述每个弯曲的形态特征。然后&…

基于Spring 框架中的@Async 注解实现异步任务

Async 是 Spring 框架中的一个注解&#xff0c;用于实现方法级别的异步执行。使用 Async 可以让你的代码在非当前线程中执行&#xff0c;从而提高应用的并发性能。 1、 启用异步支持 在 Spring 应用的主配置类或任何其他配置类上添加 EnableAsync 注解来开启异步任务的支持 …

WordPress中借助Table of Contents Plus+Widget Options插件,实现仅在文章侧边栏显示文章目录的功能

本文转自博主的个人博客&#xff1a;https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接&#xff1a;点我访问 序言&#xff1a;今天心血来潮&#xff0c;写了一篇文章&#xff0c;忽然发现自己的文章极少有目录&#xff0c;这对于长文章的阅读来说是十分不利的&#…

Android14 WMS-窗口添加流程(一)-Client端

窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载&#xff0c;但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后&#xff0c;也就是说应用onResume时此窗口是不可见的&#xff0c;真正可见是当此window窗口的mDrawState变化状态从NO_SUR…

2024年社会发展、人文艺术与文化国际会议(ICSDHAC 2024)

2024年社会发展、人文艺术与文化国际会议&#xff08;ICSDHAC 2024&#xff09; 会议简介 2024年国际社会发展、人文、艺术和文化会议&#xff08;ICSDHAC 2024&#xff09;将在广州举行。会议旨在为从事社会发展、人文、艺术和文化研究的专家学者提供一个平台&#xff0c;分…

xjar加密springboot的jar包,并编译为执行程序

场景&#xff1a;当前项目需要进行jar包部署在windows环境和linux环境&#xff0c;并要求使用xjar加密。 1. xjar加密 源码程序自行搜索&#xff0c;这里只介绍加密及运行&#xff0c;运行加密程序&#xff0c;指定jar包&#xff0c;输入密码 2. 加密后的目录 3. go程序编译 …