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<endi≤32767),请你帮助酒店管理人员安排一些活动来使用礼堂,要求安排的活动尽量多。假设没有重新布置礼堂时间的消耗,即某个时间点完成活动的瞬间,就可以开始下一个活动。
输入描述
第一行一个整数 n n n( n ≤ 1000 n \le 1000 n≤1000);接下来的 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<endi≤32767)。
输出描述
输出最多能安排的活动个数。
样例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 1≤n≤15
100 % 100\% 100% 的数据满足: 1 ≤ n ≤ 3 × 1 0 4 1\le n\le3\times10^4 1≤n≤3×104, 80 ≤ w ≤ 200 80\le w\le200 80≤w≤200
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 1≤n≤105
1 ≤ T i ≤ 1 0 6 1 \le T_i \le 10^6 1≤Ti≤106,不保证 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 (n−i)∗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 1≤n≤105,1≤t[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 5≤pi≤w),表示所对应糖果的美味度。
输出描述
输出文件名
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 1≤n≤15
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 1≤n≤3×104,80≤w≤200
2.2 思路
- 将购来的糖果按照美味度从小到大进行排序。
- 使用双指针(尺取)来选择糖果,组成分组。
- 设置两个指针 l l l 和 r r r,分别指向糖果数组的第一个和最后一个元素。
- 每次迭代中,判断左指针和右指针所指的糖果美味度之和是否小于等于给定的美味度上限 w w w。
- 如果是,表示可以将这两个糖果放在同一组内,我们将左指针向右移动一位,右指针向左移动一位。
- 如果不是,表示这两个糖果无法放在同一组内,我们只能将右指针向左移动一位继续成组。
- 在每次迭代中,无论是否能放入同一组内,我们都将分组数目 c n t cnt cnt 自增。
- 当左指针超过右指针时,表示所有的糖果都已经处理完毕,此时 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 a≤X≤b,则该气球会被引爆。
可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。
如果要将所有气球全部被引爆,最少需要多少支弓箭呢?
输入描述
第一行有一个正整数 n n n( 1 ≤ n ≤ 1000 1\le n\le1000 1≤n≤1000)
接下来有 n n n 行,每一行有 2 2 2 个正整数 a a a, b b b,分别表示气球直径的开始坐标和结束坐标( 1 ≤ a , b ≤ 32767 1\le a,b\le 32767 1≤a,b≤32767)。
输出描述
单独一行,表示引爆所有气球所需弓箭的最小数量。
样例1
输入
4 10 16 2 8 1 6 7 12
输出
2
3.2 思路
- 将气球的坐标按照结束点的大小进行排序。
- 设置射击数量变量 c n t cnt cnt 为 1 1 1,同时设置一个变量 e n d end end 表示当前射击的结束点。
- 遍历气球的坐标数组,对于当前的气球坐标 ( 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 为当前气球的结束点。
- 当遍历结束后, 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的安装教程,但学习一下ComfyUI这种节点流程式的对理解AI绘画有较大帮助,而且后期排查错误会更加方便,熟练后用这种方式做AI绘画可玩性会更多。 文章目录 一、安装包说明二、安装文件介绍三、安装步骤四、汉化五、云主…...

前端基于Verdaccio搭建私有npm仓库,上传npm插件包,及下载使用自己的npm插件包
文章目录 一、原理二、常用的仓库地址三、优势四、准备环境六、使用verdaccio搭建私有npm服务1、安装2、运行3、配置config.yaml,使局域网下能共享访问,否则只能本机访问。4、重新运行 七、npm常见操作查看当前用户信息查看源地址切换源地址删除源地址创…...
Unity红点系统的架构与设计
在游戏开发中,红点系统是一种常见的功能,用于提示玩家有未读消息或待处理任务。在Unity引擎中,我们可以使用脚本来实现红点系统,下面我将介绍一种基于Unity的红点系统的架构与设计,并给出对应的代码实现。 红点系统的代…...
go语言内存泄漏检查工具
和其它语言一样,go语言也提供了一些内存泄漏分析的工具,用来帮助查找和分析内存泄漏问题。有以下一些常用的工具和技术: 1、go tool pprof: Go内置了一个性能分析工具(pprof),它可以用于分析内…...

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

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

WordPress后台自定义登录和管理页面插件Admin Customizer
WordPress默认的后台登录页面和管理员,很多站长都想去掉或修改一些自己不喜欢的功能,比如登录页和管理页的主题样式、后台左侧菜单栏的某些菜单、仪表盘的一些功能、后台页眉页脚某些小细节等等。这里boke112百科推荐这款可以让我们轻松自定义后台登录页…...
C语言——static的三大用法
被称为面试爱考爱问题的它到底有何奥义 它难度不大并且非常常用,话不多说,直接开始 一、局部静态变量 定义 在函数内部使用static修饰的变量被称为局部静态变量,与普通的局部变量不同,局部静态变量在使用后不会被销毁ÿ…...

开源 - 一款可自定义的在线免杀平台|过x60、wd等
免责声明:本工具仅供安全研究和教学目的使用,用户须自行承担因使用该工具而引起的一切法律及相关责任。作者概不对任何法律责任承担责任,且保留随时中止、修改或终止本工具的权利。使用者应当遵循当地法律法规,并理解并同意本声明…...

论文阅读-EMS: History-Driven Mutation for Coverage-based Fuzzing(2022)模糊测试
一、背景 本文研究了基于覆盖率的模糊测试中的历史驱动变异技术。之前的研究主要采用自适应变异策略或集成约束求解技术来探索触发独特路径和崩溃的测试用例,但它们缺乏对模糊测试历史的细粒度重用,即它们在不同的模糊测试试验之间很大程度上未能正确利用…...
【 Java 编程中的常用方法和技巧】
本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

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

RMAN备份与恢复
文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN(Recovery Manager)是Oracl…...
速评谷歌开源大模型Gemma 7B
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...
线阵相机参数介绍---变频参数控制
变频器介绍 变频器功能的目的在于对外部输入信号进行运算处理,以达到理想的行频值。该功能主要是为了解决信号超行频,图像拉伸压缩等问题。 输入信号处理过程: 输入信号:允许出发相机信号的频率f与所要求输入信号的频率F不同 …...

挑战杯 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类
文章目录 0 简介1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…...

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

基于Java在线宠物店商城系统设计与实现(源码+部署文档)
博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…...

http和https的区别(简述)
HTTP(HyperText Transfer Protocol)和HTTPS(HTTP Secure)都是用于在客户端和服务器之间传输数据的协议,但它们在安全性方面有重要的区别。 1.HTTP: 概述: HTTP是一种用于传输超文本的协议(超文…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...