当前位置: 首页 > news >正文

C++知识点总结(19):高级贪心算法

高级贪心算法

  • 一、P1803 活动安排
    • 1. 审题
    • 2. 思路
      • 2.1 最优区间挑选方法
      • 2.2 分配时间方法
      • 2.3 排序方法
    • 3. 参考答案
  • 二、P1094 纪念品分组
    • 1. 审题
    • 2. 思路
      • 2.1 每组多少个方法
      • 2.2 搭配的方法
    • 3. 参考答案
  • 三、村民打水
    • 1. 审题
    • 2. 思路
    • 3. 参考答案
  • 四、习题
    • 1. 服务等待
      • 1.1 审题
      • 1.2 参考答案
    • 2. 春节糖果
      • 2.1 审题
      • 2.2 思路
      • 2.3 参考答案
    • 3. LC452 气球射击
      • 3.1 审题
      • 3.2 思路
      • 3.3 参考答案
  • 彩蛋

一、P1803 活动安排

1. 审题

题目描述

春节快要到了,耶斯莫拉大酒店在最近几天要举办 n n n 个活动,这些活动都需要使用酒店的大礼堂,而在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,酒店管理人员只好让一些活动放弃使用礼堂而使用其他小的餐厅。现在给出n个活动使用礼堂的起始时间 b e g i n i begin_i begini 和结束时间 e n d i end_i endi ( b e g i n i < e n d i ≤ 32767 begin_i < end_i \le 32767 begini<endi32767),请你帮助酒店管理人员安排一些活动来使用礼堂,要求安排的活动尽量多。假设没有重新布置礼堂时间的消耗,即某个时间点完成活动的瞬间,就可以开始下一个活动。

输入描述

第一行一个整数 n n n( n ≤ 1000 n \le 1000 n1000);接下来的 n n n 行,每行两个整数,第一个 b e g i n i begin_i begini ,第二个是 e n d i end_i endi ( b e g i n i < e n d i ≤ 32767 begin_i < end_i \le 32767 begini<endi32767)。

输出描述

输出最多能安排的活动个数。

样例1

输入

11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13

输出

4

提示

2. 思路

2.1 最优区间挑选方法

  • 开始时间

不应该这么直接,因为开始时间的早晚会导致活动少,不是最优解。

  • 所用时间

如果在两个活动执行区间内有一个更短时间的活动,则错过了几个活动,不是最优解。

  • 结束时间

结束时间越早,说明后面剩余的连续时间越多
,是最优解。

2.2 分配时间方法

首先,一定要从一个区间开始遍历,因为如果这个区间包含了下个区间,那么选择这个区间不如选择下一个区间划算,选下个区间还能节省几个点来用于其他区间的选择。

2.3 排序方法

通过结束时间,从小到大进行排序(需要用到结构体 struct )。

3. 参考答案

#include <iostream>
#include <algorithm>
using namespace std;int n, rem, ans = 1;struct Node
{int l, r;
}a[1005];bool cmp(Node a, Node b)
{return a.r < b.r;
}int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i].l >> a[i].r;}sort(a+1, a+n+1, cmp);int rem = a[1].r;for (int i = 2; i <= n; i++){if (a[i].l >= rem){ans++;rem = a[i].r;}}cout << ans;return 0;
}

二、P1094 纪念品分组

1. 审题

题目描述

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。
你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入格式

输入文件 gift.in
n + 2 n+2 n+2 行:
第一行包括一个整数 w w w,为每组纪念品价格之和的上限。
第二行为一个整数 n n n,表示购来的纪念品的总件数 G G G
3 n + 23 n + 2 3 ~ n + 23 ~ n + 2 3 n+23 n+2 行每行包含一个正整数 P i P_i Pi 表示所对应纪念品的价格。

输出格式

输出文件 gift.out
一个整数,即最少的分组数目。

样例1

输入

100
9
90
20
20
30
50
60
70
80
90

输出

6

提示

50 % 50\% 50% 的数据满足: 1 ≤ n ≤ 15 1\le n\le15 1n15
100 % 100\% 100% 的数据满足: 1 ≤ n ≤ 3 × 1 0 4 1\le n\le3\times10^4 1n3×104 80 ≤ w ≤ 200 80\le w\le200 80w200

2. 思路

2.1 每组多少个方法

当和 ≤ w \le w w 的时候,优先 2 2 2 个一组。

2.2 搭配的方法

优先让危险的数字(越贵)找不危险的数字(越便宜),也就是大找小。
如果超过 w w w 则优先让大的组成 1 1 1 组。

3. 参考答案

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;int w, n, cnt;
int num[30005];int main()
{freopen("gift.in", "r", stdin);freopen("gift.out", "w", stdout);cin >> w >> n;for (int i = 1; i <= n; i++){cin >> num[i];}sort(num+1, num+n+1);int i = 1, j = n;while (i <= j){// 贵的配便宜的 if (num[j] + num[i] <= w){cnt++;j--;i++;}// 贵的单独一组 else{cnt++;j--;}}cout << cnt;fclose(stdin);fclose(stdout);return 0;
}

三、村民打水

1. 审题

题目描述

在一个小村子里,生活着 n n n 户人家。由于村里只有一口井,所以他们每天早上一户人家派一个人在这一口井前排队打水。由于每家的水桶大小不同,所以每个人的打水时间也不同。假如每个人打水的时间为 T i T_i Ti,请你编程找出这 n n n 个人排队的一种顺序,使得 n n n 个人的平均等待时间最小。

输入描述

共两行,第一行为 n n n;第二行分别表示第 1 1 1 个人到第 n n n 个人每人的打水时间 T i T_i Ti,每个数据之间有 1 1 1 个空格。

输出描述

共两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

样例1

输入

10					
56 12 1 99 1000 234 33 55 99 812	

输出

3 2 7 8 1 4 9 6 10 5
291.90

提示

1 ≤ n ≤ 1 0 5 1 \le n \le 10^5 1n105
1 ≤ T i ≤ 1 0 6 1 \le T_i \le 10^6 1Ti106,不保证 T i T_i Ti 不重复
T i T_i Ti 重复时,按照输入顺序即可(sort 是可以的)

2. 思路

计算每个人的等待时间,并且累加得到总的等待时间 a n s ans ans。对于第 i i i 个人,他的等待时间为 ( n − i ) ∗ t i (n-i) * t_i (ni)ti,其中 n n n 是总人数, t i t_i ti 是第 i i i 个人的打水时间。

3. 参考答案

#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;int n;
double ans;struct Node
{int idx;int t;
}person[100005];bool cmp(Node a, Node b)
{if (a.t != b.t){return a.t < b.t;}return a.idx < b.idx;
}int main() 
{cin >> n;for (int i = 1; i <= n; i++){person[i].idx = i;cin >> person[i].t;}sort(person+1, person+n+1, cmp);for (int i = 1; i <= n; i++){ans += person[i].t * (n-i);cout << person[i].idx << " ";}ans /= n;cout << endl << fixed << setprecision(2) << ans;return 0;
}

四、习题

1. 服务等待

1.1 审题

题目描述

小明新店开业,免费为顾客进行按摩服务,现在已经排了一个有 n n n 个人的队伍,其中第 i i i 个人需要 t[i] 分钟来服务,期间后面的人就要等着。如果一个人等待的时间大于了他被服务的时间,他就会失望,就会离开队伍。
你的任务是重排队伍,使失望的人尽量的少,并输出最多有多少个不失望的人。

输入描述

1 1 1 行一个整数 n n n,表示队伍人数。
接下来 n n n 行,每行一个整数,表示第i个人的服务时间 t [ i ] t[i] t[i]

输出描述

输出一行,为一个整数,表示最多不失望的人数。

样例1

输入

5
15 
2 
1 
5 
3

输出

4

提示

1 ≤ n ≤ 1 0 5 , 1 ≤ t [ i ] ≤ 1 0 3 1 \le n \le 10^5,1 \le t[i] \le 10^3 1n1051t[i]103

1.2 参考答案

#include <iostream>
#include <algorithm>
using namespace std;int n, cnt, wait;
int t[100005];int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> t[i];}sort(t+1, t+n+1);for (int i = 1; i <= n; i++){if (wait <= t[i]){cnt++;wait += t[i];}}cout << cnt;return 0;
}

2. 春节糖果

2.1 审题

题目描述

春节快到了,王老师给同学们准备了春节糖果,让胡图图负责糖果的发放工作。王老师准备的不同糖果美味度不同,为使得各位同学所获得的糖果美味度相对均衡,图图需要把购来的糖果根据美味度进行分组,但每组最多只能包括两份糖果,并且每组糖果的美味度之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有糖果,图图希望分组的数目最少。 由于胡图图比较糊涂,所以请你帮图图写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入描述

输入文件名 gift.in
n + 2 n+2 n+2 行:
1 1 1 行包括一个整数 w w w,为每组糖果美味度之和的上限。
2 2 2 行为一个整数 n n n,表示购来的糖果的总件数。
3 n + 2 3~n+2 3 n+2 行每行包含一个正整数 p i p_i pi ( 5 ≤ p i ≤ w 5 \le p_i \le w 5piw),表示所对应糖果的美味度。

输出描述

输出文件名 gift.out
仅一行,包含一个整数,即最少的分组数目。

样例1

输入

100
9
90
20
20
30
50
60
70
80
90

输出

6

提示

50 % 50\% 50%的数据满足: 1 ≤ n ≤ 15 1 \le n \le 15 1n15
100 % 100\% 100%的数据满足: 1 ≤ n ≤ 3 × 1 0 4 , 80 ≤ w ≤ 200 1 \le n \le 3 \times 10^4, 80 \le w \le 200 1n3×104,80w200

2.2 思路

  1. 将购来的糖果按照美味度从小到大进行排序。
  2. 使用双指针(尺取)来选择糖果,组成分组。
  3. 设置两个指针 l l l r r r,分别指向糖果数组的第一个和最后一个元素。
  4. 每次迭代中,判断左指针和右指针所指的糖果美味度之和是否小于等于给定的美味度上限 w w w
  • 如果是,表示可以将这两个糖果放在同一组内,我们将左指针向右移动一位,右指针向左移动一位。
  • 如果不是,表示这两个糖果无法放在同一组内,我们只能将右指针向左移动一位继续成组。
  1. 在每次迭代中,无论是否能放入同一组内,我们都将分组数目 c n t cnt cnt 自增。
  2. 当左指针超过右指针时,表示所有的糖果都已经处理完毕,此时 c n t cnt cnt 的值为最少的分组数目。

这种算法通过贪心的策略,每次选择美味度最小和最大的糖果进行配对,以保证尽可能多的糖果被分组。同时,通过排序操作,使得每次选择到的糖果的美味度是当前剩余糖果中最小的,这样有利于后续的分组过程。

2.3 参考答案

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;int w, n, cnt, sum;
int candies[30005];int main()
{freopen("gift.in", "r", stdin);freopen("gift.out", "w", stdout);cin >> w >> n;for (int i = 1; i <= n; i++){cin >> candies[i];}sort(candies+1, candies+n+1);int l = 1, r = n;while (l <= r){if (candies[l] + candies[r] <= w){l++;r--;}else{r--;}cnt++;}cout << cnt;fclose(stdin);fclose(stdout);return 0;
}

3. LC452 气球射击

3.1 审题

题目描述

游乐园举办了一场射气球的比赛,如果谁能使用最少的弓箭数量引爆所有气球,则会得到"最佳射手奖"。
规则如下:
在二维空间中有 n n n 个直径不同的球形气球,对于每个气球,提供的是水平方向上气球直径的开始和结束坐标。由于气球是被水平牵引的,所以Y坐标并不重要,因此只要知道气球直径的开始和结束的X坐标就足够了。每个气球的直径的开始坐标一定小于结束坐标。
一支弓箭可以沿着 X X X 轴从不同点完全垂直地射出。在坐标 X X X 处射出一支箭,若有一个气球的直径的开始和结束坐标为 ( a , b ) (a,b) (a,b),只要满足 a ≤ X ≤ b a ≤ X ≤ b aXb,则该气球会被引爆。
可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。
如果要将所有气球全部被引爆,最少需要多少支弓箭呢?

输入描述

第一行有一个正整数 n n n( 1 ≤ n ≤ 1000 1\le n\le1000 1n1000)
接下来有 n n n 行,每一行有 2 2 2 个正整数 a a a b b b,分别表示气球直径的开始坐标和结束坐标( 1 ≤ a , b ≤ 32767 1\le a,b\le 32767 1a,b32767)。

输出描述

单独一行,表示引爆所有气球所需弓箭的最小数量。

样例1

输入

4
10 16
2 8
1 6
7 12

输出

2

3.2 思路

  1. 将气球的坐标按照结束点的大小进行排序。
  2. 设置射击数量变量 c n t cnt cnt 1 1 1,同时设置一个变量 e n d end end 表示当前射击的结束点。
  3. 遍历气球的坐标数组,对于当前的气球坐标 ( s t a r t , e n d start, end start,end):
    • 如果 s t a r t > e n d start > end start>end,表示当前气球的起始点在之前的射击结束点之后,说明需要增加一个射击的数量,同时更新 e n d end end 为当前气球的结束点。
    • 否则,表示当前气球的起始点在之前的射击结束点之前,说明当前气球可以用同一支箭射击,不需要增加射击的数量,但是需要更新 e n d end end 为当前气球的结束点。
  4. 当遍历结束后, c n t cnt cnt 的值即为最少需要的射击数量。

3.3 参考答案

#include <iostream>
#include <algorithm>
using namespace std;int n, cnt = 1;struct Node
{int start, end;
}balloon[1005];bool cmp(Node a, Node b)
{return a.end < b.end;
}int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> balloon[i].start >> balloon[i].end;}// 按照结束点排序sort(balloon+1, balloon+n+1, cmp);int end = balloon[1].end;for (int i = 2; i <= n; i++){// 如果当前气球起始点再之前的结束点之后if (balloon[i].start > end){cnt++; // 增加射击数量end = balloon[i].end; // 更新射击结束点}}cout << cnt;return 0;
}

彩蛋


下期预告

下期知识点总结(明天)将会给大家刷 7 道很难的题,也就是 魔鬼刷题日

C++玩法技巧

多行输出的时候,用函数 R"()"

cout << R"(####
#**#
#**#
####
…)"

相关文章:

C++知识点总结(19):高级贪心算法

高级贪心算法 一、P1803 活动安排1. 审题2. 思路2.1 最优区间挑选方法2.2 分配时间方法2.3 排序方法 3. 参考答案 二、P1094 纪念品分组1. 审题2. 思路2.1 每组多少个方法2.2 搭配的方法 3. 参考答案 三、村民打水1. 审题2. 思路3. 参考答案 四、习题1. 服务等待1.1 审题1.2 参…...

Stable Diffusion ComfyUI安装详细教程

上一篇文章介绍了sd-webui的安装教程&#xff0c;但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助&#xff0c;而且后期排查错误会更加方便&#xff0c;熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…...

前端基于Verdaccio搭建私有npm仓库,上传npm插件包,及下载使用自己的npm插件包

文章目录 一、原理二、常用的仓库地址三、优势四、准备环境六、使用verdaccio搭建私有npm服务1、安装2、运行3、配置config.yaml&#xff0c;使局域网下能共享访问&#xff0c;否则只能本机访问。4、重新运行 七、npm常见操作查看当前用户信息查看源地址切换源地址删除源地址创…...

Unity红点系统的架构与设计

在游戏开发中&#xff0c;红点系统是一种常见的功能&#xff0c;用于提示玩家有未读消息或待处理任务。在Unity引擎中&#xff0c;我们可以使用脚本来实现红点系统&#xff0c;下面我将介绍一种基于Unity的红点系统的架构与设计&#xff0c;并给出对应的代码实现。 红点系统的代…...

go语言内存泄漏检查工具

和其它语言一样&#xff0c;go语言也提供了一些内存泄漏分析的工具&#xff0c;用来帮助查找和分析内存泄漏问题。有以下一些常用的工具和技术&#xff1a; 1、go tool pprof&#xff1a; Go内置了一个性能分析工具&#xff08;pprof&#xff09;&#xff0c;它可以用于分析内…...

Ps:灰度模式

Ps菜单&#xff1a;图像/模式/灰度 Image/Mode/Grayscale 灰度 Grayscale模式是一种特定的色彩模式&#xff0c;用于处理没有彩色信息的图像。 在灰度模式下&#xff0c;图像不包含颜色&#xff0c;只显示黑色、白色及其间的灰色阶。 这种模式对于需要强调光影、纹理和形状而不…...

实现律所高质量发展-Alpha法律智能操作系统

律师行业本质上属于服务行业&#xff0c;而律师团队作为一个独立的服务单位&#xff0c;应当包含研发、市场、销售、服务等单位发展的基础工作环节。但现实中&#xff0c;很多律师团队其实并没有区分这些工作。鉴于此&#xff0c;上海市锦天城律师事务所医药大健康行业资本市场…...

WordPress后台自定义登录和管理页面插件Admin Customizer

WordPress默认的后台登录页面和管理员&#xff0c;很多站长都想去掉或修改一些自己不喜欢的功能&#xff0c;比如登录页和管理页的主题样式、后台左侧菜单栏的某些菜单、仪表盘的一些功能、后台页眉页脚某些小细节等等。这里boke112百科推荐这款可以让我们轻松自定义后台登录页…...

C语言——static的三大用法

被称为面试爱考爱问题的它到底有何奥义 它难度不大并且非常常用&#xff0c;话不多说&#xff0c;直接开始 一、局部静态变量 定义 在函数内部使用static修饰的变量被称为局部静态变量&#xff0c;与普通的局部变量不同&#xff0c;局部静态变量在使用后不会被销毁&#xff…...

开源 - 一款可自定义的在线免杀平台|过x60、wd等

免责声明&#xff1a;本工具仅供安全研究和教学目的使用&#xff0c;用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任&#xff0c;且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规&#xff0c;并理解并同意本声明…...

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试

一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例&#xff0c;但它们缺乏对模糊测试历史的细粒度重用&#xff0c;即它们在不同的模糊测试试验之间很大程度上未能正确利用…...

【 Java 编程中的常用方法和技巧】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

2024年重点关注的5大DevOps趋势

DevOps趋势代表了运维、开发领域在未来一段时间内的发展方向。 如果你是一名技术管理者&#xff0c;了解趋势意味着能够及时引入新技术&#xff0c;优化技术架构&#xff0c;解决实际问题&#xff0c;持续保持技术在行业的前沿。 如果你是一名工程师&#xff0c;那么了解趋势…...

RMAN备份与恢复

文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN&#xff08;Recovery Manager&#xff09;是Oracl…...

速评谷歌开源大模型Gemma 7B

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

线阵相机参数介绍---变频参数控制

变频器介绍 变频器功能的目的在于对外部输入信号进行运算处理&#xff0c;以达到理想的行频值。该功能主要是为了解决信号超行频&#xff0c;图像拉伸压缩等问题。 输入信号处理过程&#xff1a; 输入信号&#xff1a;允许出发相机信号的频率f与所要求输入信号的频率F不同 …...

挑战杯 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类

文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径&#xff0c;图像尺寸&#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...

Spring6学习技术|IoC|手写IoC

学习材料 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09; 有关反射的知识回顾 IoC是基于反射机制实现的。 Java反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&…...

基于Java在线宠物店商城系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…...

http和https的区别(简述)

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;都是用于在客户端和服务器之间传输数据的协议&#xff0c;但它们在安全性方面有重要的区别。 1.HTTP: 概述&#xff1a; HTTP是一种用于传输超文本的协议&#xff08;超文…...

2024年【T电梯修理】找解析及T电梯修理复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理找解析是安全生产模拟考试一点通总题库中生成的一套T电梯修理复审考试&#xff0c;安全生产模拟考试一点通上T电梯修理作业手机同步练习。2024年【T电梯修理】找解析及T电梯修理复审考试 1、【多选题】操纵箱…...

【计算机网络】socket 网络套接字

网络套接字 一、端口号1. 认识端口号2. socket 二、认识TCP协议和UDP协议1. TCP协议2. UDP协议 三、网络字节序四、socket 编程1. socket 常见API2. sockaddr 结构3. 编写 UDP 服务器&#xff08;1&#xff09;socket()&#xff08;2&#xff09;bind()&#xff08;3&#xff0…...

Eclipse的Java Project的入口main函数

在使用Eclipse创建java project项目的时候&#xff0c;一个项目里面通常只有一个main&#xff0c;那么一个项目里面是否可以有多个main函数呢&#xff1f;其实可以的&#xff0c;但是运行java application的时候要选择执行哪个main函数。 下面举个例子&#xff1a; 1、创建一个…...

JVM内存分析工具-Arthas 教程[详细]

一、概述 Arthas&#xff08;阿尔萨斯&#xff09;是阿里巴巴开源的一款Java诊断工具&#xff0c;用于实时检测、诊断Java应用程序的性能问题。它是一个命令行工具&#xff0c;提供了丰富的功能&#xff0c;包括查看类加载信息、方法执行耗时、线程堆栈、内存分析等。Arthas 的…...

Google发布开放的模型Gemma

今天&#xff0c;Google 发布了一系列最新的开放式大型语言模型 —— Gemma&#xff01;Google 正在加强其对开源人工智能的支持&#xff0c;我们也非常有幸能够帮助全力支持这次发布&#xff0c;并与 Hugging Face 生态完美集成。 Gemma 提供两种规模的模型&#xff1a; 7B …...

谷歌掀桌子!开源Gemma:可商用,性能超过Llama 2!

2月22日&#xff0c;谷歌在官网宣布&#xff0c;开源大语言模型Gemma。 Gemma与谷歌最新发布的Gemini 使用了同一架构&#xff0c;有20亿、70亿两种参数&#xff0c;每种参数都有预训练和指令调优两个版本。 根据谷歌公布的测试显示&#xff0c;在MMLU、BBH、GSM8K等主流测试…...

http缓存?强制缓存和协商缓存?

HTTP缓存是一种优化网络资源加载速度的技术&#xff0c;通过减少从服务器获取相同资源的次数来实现。HTTP缓存机制包括强制缓存和协商缓存&#xff08;对比缓存&#xff09;两种类型。 强制缓存 强制缓存是指浏览器在接收到服务器返回的响应后&#xff0c;会将响应内容和相关…...

技术心得--如何成为优秀的架构师

关注我&#xff0c;持续分享逻辑思维&管理思维&#xff1b; 可提供大厂面试辅导、及定制化求职/在职/管理/技术辅导&#xff1b; 有意找工作的同学&#xff0c;请参考博主的原创&#xff1a;《面试官心得--面试前应该如何准备》&#xff0c;《面试官心得--面试时如何进行自…...

【Unity】【VR开发】Unity云同步功能使用心得

【背景】 有时出差,旅行等等也带着电脑,晚上想要继续编辑项目,就需要用到云同步功能。目前实践下来,发现有些内容可以同步,有些内容则是不可以同步的,总结如下。 【如何云同步一个本地项目】 UnityHub的项目面板中有两个选项卡:项目和云端项目。 鼠标挪动到想要云同步…...

vscode侧边框关掉了怎么打开

View - Appearance - Secondary Side Bar 就可以显示出来了&#xff0c;例如 &#xff1a;&#xff08;CodeGeeX不显示主界面&#xff09;...