Codeforces Round 943 (Div. 3) A~G1

A.Maximize?(枚举)

题意:

给你一个整数 x x x。你的任务是找出任意一个整数 y y y ( 1 ≤ y < x ) (1\le y\lt x) (1y<x),使得 gcd ⁡ ( x , y ) + y \gcd(x,y)+y gcd(x,y)+y为最大可能数。 ( 1 ≤ y < x ) (1\le y\lt x) (1y<x)使得 gcd ⁡ ( x , y ) + y \gcd(x,y)+y gcd(x,y)+y最大。

注意,如果有一个以上的 y y y满足该语句,允许找到任何一个。

gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b) a a a b b b的最大公约数。例如, gcd ⁡ ( 6 , 4 ) = 2 \gcd(6,4)=2 gcd(6,4)=2

分析:

本题数据范围较小,直接暴力枚举即可。

此外,因为 y < x y\lt x y<x所以 gcd ⁡ ( x , y ) \gcd(x,y) gcd(x,y)等价于 gcd ⁡ ( x , x − y ) \gcd(x,x-y) gcd(x,xy),易得 gcd ⁡ ( x , x − y ) ≤ x − y \gcd(x,x-y)\le x-y gcd(x,xy)xy,所以 gcd ⁡ ( x , x − y ) + y ≤ x \gcd(x,x-y)+y\le x gcd(x,xy)+yx,又因为相邻两个数的 gcd ⁡ \gcd gcd 1 1 1,所以当 y = x − 1 y=x-1 y=x1时一定满足题目,可以直接输出 x − 1 x-1 x1

代码:

#include<bits/stdc++.h>using namespace std;int gcd(int a, int b) {if (b > a) swap(a, b);if (b == 0) return a;return gcd(b, a % b);
}int main() {int t;cin >> t;while (t--) {int x;cin >> x;int res = 0;int ans = 1;for (int y = 1; y < x; y++) {if (gcd(x, y) + y > res) {res = gcd(x, y) + y;ans = y;}}cout << ans << endl;}return 0;
}

B.Prefiquence(双指针)

题意:

给你两个二进制字符串 a a a b b b。二进制字符串是由字符"0"和"1"组成的字符串。

你的任务是确定最大可能的数字 k k k,使得长度为 k k k的字符串 a a a的前缀是字符串 b b b的子序列。

如果 a a a可以从 b b b中删除几个(可能是零个或全部)元素,那么序列 a a a就是序列 b b b的子序列。

分析:

本题本质就是找 b b b字符串的子序列作为 a a a的前缀最大是多少。

考虑双指针,设置 l l l指针指向 a a a字符串的第一个字母 r r r指针指向 b b b字符串的第一个字母,若 l l l r r r指向的字母相同,则双指针往后移动,并更新 a n s ans ans值为 l l l指针 若 l l l r r r不相同 则移动 r r r指针至第一个可以和 l l l指针匹配的位置,逐个移动直到 l l l或者 r r r指针跑到 n n n m m m

代码:

#include<bits/stdc++.h>typedef long long LL;
using namespace std;void solve() {LL n, m;cin >> n >> m;string a, b;cin >> a >> b;a = " " + a;b = " " + b;LL l, r;LL ans = 0;l = r = 1;while (l <= n && r <= m) {if (a[l] == b[r]) {l++;r++;ans = l;} else if (a[l] != b[r]) {while (a[l] != b[r] && r <= m) {r++;}}}ans = max(ans - 1, 0LL);cout << ans << endl;
}int main() {LL t;cin >> t;while (t--)solve();return 0;
}

C.Assembly via Remainders(构造)

题意:

给你一个数组 x 2 , x 3 , … , x n x_2,x_3,\dots,x_n x2,x3,,xn。你的任务是找出任意一个数组 a 1 , … , a n a_1,\dots,a_n a1,,an,其中:

  • 对于所有的 1 ≤ i ≤ n 1\le i\le n 1in 1 ≤ a i ≤ 1 0 9 1\le a_i\le 10^9 1ai109
  • 对于所有 2 ≤ i ≤ n 2\le i\le n 2in x i = a i m o d a i − 1 x_i=a_i\bmod a_{i-1} xi=aimodai1

这里的 c m o d d c\bmod d cmodd表示整数 c c c除以整数 d d d的余数。例如, 5 m o d 2 = 1 5\bmod 2=1 5mod2=1 72 m o d 3 = 0 72\bmod 3=0 72mod3=0 143 m o d 14 = 3 143\bmod 14=3 143mod14=3

注意,如果有一个以上的 a a a满足该语句的要求,你可以找到任何一个。

分析:

题目要求构造 a i a_i ai,考虑如果 a i − 1 a_{i-1} ai1 a i a_i ai大的话,根据模的计算方法,可以直接放入 x i x_i xi

我们每次构造出的 a i a_i ai,都让它等于 a i − 1 + x i a_{i-1}+x_i ai1+xi,让数组 a a a一直递增,即可符合要求。

代码:

#include<bits/stdc++.h>typedef long long LL;
using namespace std;
const LL N = 505;
int x[N], a[N];void solve() {int n;cin >> n;for (int i = 2; i <= n; i++)cin >> x[i];a[n] = 1e9;for (int i = n; i >= 2; i--) {if (x[i] == a[i]) {a[i - 1] = 1e9;continue;}a[i - 1] = a[i] - x[i];}for (int i = 1; i <= n; i++) {cout << a[i] << " ";}cout << endl;
}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

D.Permutation Game(贪心)

题意:

Bodya和Sasha发现了一个排列 p 1 , … , p n p_1,\dots,p_n p1,,pn和一个数组 a 1 , … , a n a_1,\dots,a_n a1,,an。他们决定玩一个著名的 “排列游戏”。

长度为 n n n的排列是由 n n n个不同的整数组成的数组,这些整数从 1 1 1 n n n按任意顺序排列。例如, [ 2 , 3 , 1 , 5 , 4 ] [2,3,1,5,4] [2,3,1,5,4]是一个排列,但 [ 1 , 2 , 2 ] [1,2,2] [1,2,2]不是一个排列( 2 2 2在数组中出现了两次), [ 1 , 3 , 4 ] [1,3,4] [1,3,4]也不是一个排列( n = 3 n=3 n=3,但数组中有 4 4 4)。

它们都在排列中选择了一个起始位置。

对局持续了 k k k个回合。棋手同时下棋。在每个回合中,每个棋手都会发生两件事:

  • 如果棋手当前的位置是 x x x,他的得分就会增加 a x a_x ax
  • 然后棋手要么停留在当前位置 x x x,要么 x x x移动到 p x p_x px

在整整 k k k个回合后,得分较高的一方即为获胜者。

知道了Bodya的起始位置 P B P_B PB和Sasha的起始位置 P S P_S PS后,如果两位棋手都想获胜,那么谁会赢得对局?

分析:

最优的方案一定是先走几步,然后一直停在某个点,如果我们站的点是最大的,那么我们就不需要移动,因为可以一直站在上面得到最大的分数。

否则我们就去下一个位置去看看,能不能获得更多的得分。

遍历的话因为是排列,移动是一个环,所以最多的遍历次数是 n n n

代码:

#include<bits/stdc++.h>typedef long long LL;
using namespace std;void solve() {LL n, k, pb, ps;cin >> n >> k >> pb >> ps;vector<LL> p(n + 1), a(n + 1);for (int i = 1; i <= n; i++)cin >> p[i];for (int i = 1; i <= n; i++)cin >> a[i];LL ans_pb = 0, ans_ps = 0;LL res_pb = 0, res_ps = 0;for (int i = 0; i < min(k, n); i++) {res_pb += a[pb];ans_pb = max(ans_pb, res_pb + (k - i - 1) * a[pb]);pb = p[pb];res_ps += a[ps];ans_ps = max(ans_ps, res_ps + (k - i - 1) * a[ps]);ps = p[ps];}if (ans_pb > ans_ps)cout << "Bodya" << endl;else if (ans_pb == ans_ps)cout << "Draw" << endl;elsecout << "Sasha" << endl;
}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

E.Cells Arrangement(构造)

题意:

给你一个整数 n n n。您在网格 n × n n\times n n×n中选择 n n n个单元格 ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) (x_1,y_1),(x_2,y_2),\dots,(x_n,y_n) (x1,y1),(x2,y2),,(xn,yn),其中 1 ≤ x i ≤ n 1\le x_i\le n 1xin 1 ≤ y i ≤ n 1\le y_i\le n 1yin

H \mathcal{H} H为任意一对单元格之间不同的曼哈顿距离集合。你的任务是最大化 H \mathcal{H} H的大小。注释中给出了集合及其构造的例子。

如果存在不止一个解,你可以输出任意一个。

单元格 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)之间的曼哈顿距离等于 ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ |x_1-x_2|+|y_1-y_2| x1x2+y1y2

分析:

观察样例发现,在 ( 1 , 1 ) (1,1) (1,1)放一个,然后 ( 1 , 2 ) (1,2) (1,2)下面放一个,如果有多的,全部斜着放是能取完所有的距离情况的,这样放是最大值。

代码:

#include<bits/stdc++.h>using namespace std;void solve() {int n;cin >> n;cout << "1 1" << endl;cout << "1 2" << endl;for (int i = 3; i <= n; i++) {cout << i << " " << i << endl;}
}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

F.Equal XOR Segments(前缀处理)

题意:

如果可以将数组分成 k > 1 k\gt 1 k>1部分,使得每一部分值按位异或都相等,那么我们就称这个数组为 x 1 , … , x m x_1,\dots,x_m x1,,xm有趣。

更正式地说,你必须把数组 x x x分成 k k k个连续的部分, x x x中的每个元素都必须准确地属于 1 1 1部分。设 y 1 , … , y k y_1,\dots,y_k y1,,yk分别是各部分元素的XOR。那么 y 1 = y 2 = ⋯ = y k y_1=y_2=\dots=y_k y1=y2==yk必须满足。

例如,如果是 x = [ 1 , 1 , 2 , 3 , 0 ] x=[1,1,2,3,0] x=[1,1,2,3,0],可以将其拆分如下: [ 1 ] , [ 1 ] , [ 2 , 3 , 0 ] [\color{blue}1],[\color{green}1],[\color{red}2,\color{red}3,\color{red}0] [1],[1],[2,3,0]。事实上是 1 = 1 = 2 ⊕ 3 ⊕ 0 \color{blue}1=\color{green}1=\color{red}2\oplus\color{red}3\oplus\color{red}0 1=1=230

给你一个数组 a 1 , … , a n a_1,\dots,a_n a1,,an。你的任务是回答 q q q次查询:

  • 对于固定的 l l l, r r r, 判断子数组 a l , a l + 1 , … , a r a_l,a_{l+1},\dots,a_r al,al+1,,ar是否有趣。

分析:

区间问题先转化为前缀异或。

  1. S r ⊕ S l − 1 = 0 S_r\oplus S_{l-1}=0 SrSl1=0

题目保证了 l < r l\lt r l<r,所以一定有解。

  1. S r ⊕ S l − 1 = v S_r\oplus S_{l-1}=v SrSl1=v

区间一定可以划分为奇数段。如果能划分成奇数段,则一定能划分成 3 3 3段。

最终划分的异或值一定是 v v v

于是问题转变为是否能把 [ l , r ] [l,r] [l,r]分成三段,使得每段异或值都为 v v v

找到最大的 i < r i\lt r i<r使得 S r ⊕ S i = v S_r\oplus S_i=v SrSi=v,如果找不到则无解。

找到最大的 j < i j\lt i j<i使得 S i ⊕ S j = v S_i\oplus S_j=v SiSj=v,如果找不到或则 j < l − 1 j\lt l-1 j<l1无解。

具体实现可以维护一个map<int, vector<int> >来实现。

代码:

#include<bits/stdc++.h>typedef long long LL;
using namespace std;void solve() {LL n, q;cin >> n >> q;vector<LL> a(n + 1);map<int, vector<int>> mp;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++) {a[i] ^= a[i - 1];mp[a[i]].push_back(i);}while (q--) {int l, r;cin >> l >> r;LL p = a[r] ^ a[l - 1];if (p == 0) {cout << "YES" << endl;} else {auto &v1 = mp[a[r]];auto pl = lower_bound(v1.begin(), v1.end(), l);if (pl == v1.end() || *pl >= r) {cout << "NO" << endl;continue;}LL posl = *pl;auto &v2 = mp[a[l - 1]];auto pr = lower_bound(v2.begin(), v2.end(), posl + 1);if (pr != v2.end() && *pr < r) {cout << "YES" << endl;} elsecout << "NO" << endl;}}
}int main() {int T;cin >> T;while (T--) {solve();}return 0;
}

G1.Division + LCP (easy version)(LCP)

题意:

这是问题的简单版本。在这个版本中 l = r l=r l=r

给你一个字符串 s s s。对于固定的 k k k,考虑将 s s s恰好分成 k k k个连续的子串 w 1 , … , w k w_1,\dots,w_k w1,,wk。假设 f k f_k fk是所有分割中最大的 L C P ( w 1 , … , w k ) LCP(w_1,\dots,w_k) LCP(w1,,wk)

L C P ( w 1 , … , w m ) LCP(w_1,\dots,w_m) LCP(w1,,wm)是字符串 w 1 , … , w m w_1,\dots,w_m w1,,wm的最长公共前缀的长度。

例如,如果 s = a b a b a b c a b s=abababcab s=abababcab k = 4 k=4 k=4,可能的除法是 a b a b a b c a b \color{red}{ab}\color{blue}{ab}\color{orange}{abc}\color{green}{ab} abababcab。由于 a b ab ab是这四个字符串的最长公共前缀,因此 L C P ( a b , a b , a b c , a b ) LCP(\color{red}{ab},\color{blue}{ab},\color{orange}{abc},\color{green}{ab}) LCP(ab,ab,abc,ab)就是 2 2 2。请注意,每个子串都由一段连续的字符组成,每个字符都属于一个子串。

您的任务是找出 f l , f l + 1 , … , f r f_l,f_{l+1},\dots,f_r fl,fl+1,,fr。在此版本中为 l = r l=r l=r

分析:

如果存在划分使得 L C P LCP LCP v v v,则任意 v ‘ < v v \text{`} \lt v v<v都存在划分。

存在单调性,可以二分前缀长度。

令前缀字符串为 t t t s s s种最多有 x x x个不相交的子串 t t t

如果 x ≥ k x\ge k xk,则存在划分使得 L C P LCP LCP t t t

可以用 k m p kmp kmp或字符串哈希求出。

代码:

#include<bits/stdc++.h>using namespace std;void solve() {int n, _, k;string s;cin >> n >> _ >> k >> s;vector<int> ne(n + 1, 0);ne[0] = -1;for (int i = 1, j = -1; i < n; i++) {while (j >= 0 && s[j + 1] != s[i])j = ne[j];if (s[j + 1] == s[i])j++;ne[i] = j;}auto check = [&](int m) -> bool {if (m == 0)return 1;string t = s.substr(0, m);int tmp = 0;for (int i = 0, j = -1; i < n; i++) {while (j != -1 && s[i] != t[j + 1])j = ne[j];if (s[i] == t[j + 1])j++;if (j == m - 1) {tmp++;j = -1;}}return tmp >= k;};int l = 0, r = n / k;while (l < r) {int mid = l + r + 1 >> 1;if (check(mid))l = mid;elser = mid - 1;}cout << l << endl;
}int main() {int t;cin >> t;while (t--) {solve();}return 0;
}

赛后交流

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

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

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

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

相关文章

深入解析Python中的`add_argument`用法

深入解析Python中的add_argument用法 在Python编程中&#xff0c;add_argument通常与命令行参数解析库argparse有关。这个库主要用于编写用户友好的命令行接口&#xff0c;其核心功能之一就是通过add_argument方法来指定程序可以接受哪些命令行参数。本篇博客将详细介绍argpar…

【算法练级js+java】重复给定字符n次

题目 Repeats the given string n times.&#xff08;复制指定的字符串n次&#xff09; 期望结果 /** * Repeats the given string n times. * * repeat(‘, 3) * // > **’ * * repeat(‘abc’, 2) * // > ‘abcabc’ * * repeat(‘abc’, 0) * // > “” **/ 代码…

【自动驾驶|毫米波雷达】逻辑化讲清快时间与慢时间傅里叶变换

碎碎念&#xff1a;实习过程中发现在进行雷达知识交流时&#xff0c;大部分同事都会用英文简称代替中文的一些称呼&#xff0c;比如Chirp、FFT等等。起初我觉得是因为很多英伟达、TI芯片的开发教程都是英文的&#xff0c;所以看得多了大家都习惯这样称呼&#xff0c;后来在和指…

python爬虫学习------scrapy第三部分(第三十一天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

Sarcasm detection论文解析 |使用 BERT 进行中间任务迁移学习的刺检测

论文地址 论文地址&#xff1a;https://www.mdpi.com/2227-7390/10/5/844#/ github&#xff1a;edosavini/TransferBertSarcasm (github.com) 论文首页 笔记框架 使用 BERT 进行中间任务迁移学习的讽刺检测 &#x1f4c5;出版年份:2022 &#x1f4d6;出版期刊:Mathematics &…

如何利用AI提高内容生产效率

目录 一、自动化内容生成 二、内容分发与推广 三、内容分析与优化 图片来源网络&#xff0c;侵权联系可删 一、自动化内容生成 随着AI技术的飞速发展&#xff0c;自动化内容生成已经成为提高内容生产效率的重要手段。AI可以通过自然语言处理&#xff08;NLP&#xff09;、机…

参数服务器

参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点也可以往其中存储数据。 参数服务器&#xff0c;一般适用于存在数据共享…

鸿蒙内核源码分析(特殊进程篇)

三个进程 鸿蒙有三个特殊的进程&#xff0c;创建顺序如下: 2号进程&#xff0c;KProcess&#xff0c;为内核态根进程.启动过程中创建.0号进程&#xff0c;KIdle为内核态第二个进程&#xff0c;它是通过KProcess fork 而来的.这有点难理解.1号进程&#xff0c;init&#xff0c…

【2024最新华为OD-C卷试题汇总】游戏表演赛分队(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…

VS编辑器下使用MFC完成数据相册系统

背景&#xff1a; 实验项目8:数字相册系统 (2周) (一)实验目的 通过该实验&#xff0c;使学生掌握windows程序设计的基本方法。了解相册的基本功能&#xff0c;在传统相册的基础上&#xff0c; 通过应用时钟、图形绘制功能、图形文件的读写功能以及数据库技术&#xff0c;实现对…

AI模型:windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】

AI模型&#xff1a;windows本地运行下载安装ollama运行Google CodeGemma可离线运行数据模型【自留记录】 CodeGemma 没法直接运行&#xff0c;需要中间软件。下载安装ollama后&#xff0c;使用ollama运行CodeGemma。 类似 前端本地需要安装 node.js 才可能跑vue、react项目 1…

人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败

com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM” Password 认证失败 解决办法&#xff1a; 问题在于用户权限只不足&#xff0c;相关配置文件在一般在 /data/sys hba.conf,修改IPV4 local connections选项中的改为trust。

网络机顶盒哪个牌子好?经销商整理热门网络机顶盒排名

做实体数码店多年来&#xff0c;网络机顶盒这行我非常了解&#xff0c;各种品牌的网络机顶盒我们全销售过。近来很多朋友咨询我网络机顶盒哪个牌子好&#xff0c;我按照店内近一个季度的销量情况整理了是实体店最畅销的网络机顶盒排名&#xff0c;最受欢迎的品牌是以下这些&…

时钟模块RX8025SA 内置32.768 kHz石英晶体振荡器

实时时钟模块RX8025SA&#xff0c;料号Q41802552000100&#xff0c;是一款低功耗&#xff0c;高精度时钟芯片。时钟芯片RX8025SA选型过程中应该注意哪些&#xff1f;RX8025SA又应用在哪些领域呢&#xff1f;爱普生RTC实时时钟RX8025SA&#xff0c;内置32.768 kHz石英晶体振荡器…

泰山众筹:创新电商模式引领共赢新时代

一、泰山众筹模式概述 泰山众筹模式&#xff0c;作为一种创新型的电商策略&#xff0c;巧妙地将产品销售与积分众筹相结合&#xff0c;为用户和平台双方创造了互利共赢的机会。在此模式下&#xff0c;用户购买指定产品即可获得相应积分&#xff0c;进而可将这些积分投入到众筹…

AI换脸原理(2)——人脸检测参考文献S3FD:源码解析

1 介绍 S3FD是一个实时人脸检测器,这篇论文的主要思想是试图解决一个常见的问题,即基于anchor(锚点)的检测器随着人脸变小而急剧恶化。 基于锚点的目标检测方法是通过对一系列预设锚点进行分类和回归来检测目标的,这些锚点是通过在图像上有规律地平铺一组不同尺度和宽高比…

怎么快速分享视频文件?用二维码看视频的方法

怎样不通过传输下载分享视频内容呢&#xff1f;以前分享视频内容&#xff0c;大多会通过微信、QQ、邮箱、网盘等形式来传递。但是这种方式需要下载后才可以观看&#xff0c;不仅占用手机内存&#xff0c;而且效率也比较低&#xff0c;所以现在很多人会采用视频生成二维码的方式…

初学C++——C++基础、变量、字面量、常量、数据类型、类型转换、变量命名规则、开发环境配置

文章目录 简介C 语言的特性C 开发环境配置C 变量&#xff0c;字面量和常量C 变量变量命名规则 C 字面量C 常量 C 数据类型C 基本数据类型派生数据类型 C 类型转换隐式类型转换C 显式转换 简介 C 是一种静态类型的&#xff0c;自由形式的&#xff08;通常&#xff09;编译的&…

git commit后发现git pull 拉取代码失败的解决方案(致命错误:需要指定如何调和偏离的分支。)

文章目录 前言一、情况复现1.以前多人开发同一分支提交代码逻辑(下拉取后提交)2.报错 二、解决方案1. 撤销最近一次提交2.提交代码3.注意点&#xff1a;常用的 git stash 命令&#xff1a; 前言 人员张三和人员李四在同一分支&#xff08;dev&#xff09;上开发 一、情况复现 …

springboot中使用fastJson返回前端数据出现$ref处理

出现场景&#xff1a; 一个返回对象中的多个属性集合相同 如&#xff1a;下图中的tips和geocodes的对象相同&#xff0c;反参给前端数据结构会出现下面情况 解决方案 在一个集合中&#xff0c;循环给这个对象赋值会出现"$ref":" $ [0]"&#xff0c;它会认…