【刷题笔记】第七天

OpenClaw 运行时错误文档:Embedded Run Agent End with Stream Error(嵌入式运行代理结束流式错误) OpenClaw运行时错误文档:EmbeddedRunAgentEndwithStreamError(OC-ERR-009) 该错误表示LLM提供商在流式传输过程中发生服务器端异常(HTTP 500),属于可恢复的中等严重性错误。典型表现为日志中出现包含"stream_error"和500状态码的错误信息。系统会自动进行错误分类(50%为服务过载,25%网络问题等),并通过内置机制尝试解决:包括模型切换、API密钥轮换和自动重试策略。用户可采取重试请求、切换模型或简化请求内容等操作,管理 阅读详情

924. 尽量减少恶意软件的传播

如果移除一个感染节点可以避免连通图内节点的感染,那么该节点可能是最终的答案

我们要找避免连通图内节点感染的最大值,也就是求最大的含感染节点的连通图(连通图内只能有一个感染节点)

方法一,并查集

首先我们构建连通图,并统计连通图内的节点个数

然后求最大的含感染节点的连通图

看到连通图,就想到并查集

class Solution {
    int n;
    int[] p;
    int[] size; // 记录集合内的元素个数
    public int find(int i) {
        if (i != p[i]) {
            p[i] = find(p[i]);
        }
        return p[i];
    }
    public void union(int a, int b) {
        int aFather = find(a);
        int bFather = find(b);
        if (aFather != bFather) {
            p[bFather] = aFather;
            size[aFather] += size[bFather];
        }
    }
    public int minMalwareSpread(int[][] graph, int[] initial) {
        n = graph.length;
        p = new int[n];
        size = new int[n];
        for (int i = 0; i < n; ++i) {
            p[i] = i;
            size[i] = 1;
        }

        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < n; ++j) {
                if (graph[i][j] == 1) {
                    union(i, j);
                }
            }
        }

        Arrays.sort(initial);
        // 维护感染节点所在的集合
        Map<Integer, ArrayList<Integer>> map = new HashMap<>(); // key:感染节点的代表节点,value:代表节点所在集合的感染情况(哪些节点已经感染了)
        for (int x : initial) {
            int xFather = find(x);
            if (!map.containsKey(xFather)) {
                map.put(xFather, new ArrayList<>());
            }
            ArrayList<Integer> list = map.get(xFather);
            list.add(x);
        }

        int cnt = 0; // 避免感染节点的最大值
        int ans = n; // 要移除的索引
        for (Integer key : map.keySet()) {
            ArrayList<Integer> value = map.get(key);
            if (value.size() > 1) {
                // 如果集合内的感染节点数超过1,那么移除任意哪个节点,都不能避免该集合内节点感染
                continue;
            }
            // value.size()肯定为1

            int t = value.get(0); // value中索引最小的感染节点
            int tFather = find(t);
            if (size[tFather] > cnt) {
                cnt = size[tFather];
                ans = t;
            } else if (size[tFather] == cnt && t < ans) {
                // 索引更小
                ans = t;
            }
        }
        // ans = n,表示没有找到最大的含感染节点的连通图,也就是说移除任何一个感染节点,最终的感染节点数是一样的
        return ans == n ? initial[0] : ans;
    }
}

方法二,dfs

求最大的连通块,dfs当然也能做

需要注意的是我们要求的连通块是只含有一个感染节点的连通块。

那么如何标记我们搜索的连通块是想要的连通块呢?
可以通过设置节点状态来判断,
一个感染节点也没找到,状态为-1
找到了第一个感染节点,状态为x (感染节点的编号)
又找到了感染节点,状态为-2

所以在搜索完一个连通块后,判断状态是否大于等于0,只有大于等于0的连通块才是我们想要的连通块。

class Solution {
    int n;
    boolean[] vis;
    boolean[] isInitial; // 判断是否是感染节点

    int nodeState = -1; // -1标识初始状态,x(大于等于0)找到一个感染节点,-2找到两个感染节点
    int size; // 计算连通块内的节点个数

    public void dfs(int x, int[][] graph) {
        vis[x] = true;
        size++;
        if (isInitial[x]) {
            // x是感染节点
            if (nodeState == -1) {
                // 找到了第一个感染节点
                nodeState = x;
            } else {
                nodeState = -2;
            }
        }
        for (int y = 0; y < graph[x].length; ++y) {
            if (vis[y]) continue;
            if (graph[x][y] == 1) {
                dfs(y, graph);
            }
        }
    }
    public int minMalwareSpread(int[][] graph, int[] initial) {
        n = graph.length;
        vis = new boolean[n];
        isInitial = new boolean[n];
        for (int i : initial) {
            isInitial[i] = true;
        }
        int maxSize = 0;
        int ans = n;
        Arrays.sort(initial);
        for (int i : initial) {
            if (vis[i]) continue;
            nodeState = -1;
            size = 0;
            dfs(i, graph);
            if (nodeState >= 0) {
                if (size > maxSize) {
                    maxSize = size;
                    ans = i;
                } else if (size == maxSize && i < ans) {
                    ans = i;
                }
            }
        }
        return ans == n ? initial[0] : ans;
    }
}

GCD and LCM

最大公因数、最小公倍数的性质:

假设gcd(x, y) = G,lcm(x, y) = L
1. L % G == 0
2. L / G = (x / G) * (y / G)
3. gcd(kx, ky) = k gcd(x, y) = kG,所以gcd(x/G, y/G) = 1
lcm(x/G, y/G) = L/G
4. 两个互素的数的最小公倍数等于两者乘积
5. gcd(x, y) * lcm(x, y) = x y

image-20240416213542708

对于此题x, y, z,假设gcd(x, y, z) = G, lcm(x, y, z) = L
我们令x’ = x/ G, y’= y/G, z’ = z /G,所以gcd(x’, y’, z’) = 1, lcm(x’, y’, z’) = L / G
所以我们将原问题转化为,(x,y,z)的最大公约数为1,最小公倍数为L/G的个数

令L’ = L / G
我们对L‘ 进行素因子分解,可得 L ′ = x 1 p 1 x 2 p 2 . . . x m p m ,其中 x 1 , x 2 , . . . , x m 都是素数 L'=x_1^{p_1}x_2^{p_2}... x_m^{p_m},其中x_1,x_2, ..., x_m都是素数 L′=x1p1​​x2p2​​...xmpm​​,其中x1​,x2​,...,xm​都是素数,这里默认使用了一个结论(任何数都可以分解为若干个素数的乘积),然后对x’,y‘,z’分解可得:
x ′ = x 1 a 1 x 2 a 2 . . . x m a m x'=x_1^{a_1}x_2^{a_2}... x_m^{a_m} x′=x1a1​​x2a2​​...xmam​​
y ′ = x 1 b 1 x 2 b 2 . . . x m b m y'=x_1^{b_1}x_2^{b_2}... x_m^{b_m} y′=x1b1​​x2b2​​...xmbm​​
z ′ = x 1 c 1 x 2 c 2 . . . x m c m z'=x_1^{c_1}x_2^{c_2}... x_m^{c_m} z′=x1c1​​x2c2​​...xmcm​​

先看分解式的第一项 x 1 ? 1 x_1^{?_1} x1?1​​
由于gcd(x’, y’, z’) = 1,所以 a 1 , b 1 , c 1 a_1, b_1,c_1 a1​,b1​,c1​中至少有一个是0,(假设 a 1 , b 1 , c 1 a_1, b_1,c_1 a1​,b1​,c1​都不为0,那么最大公约数肯定不为1,因为他们都有 x 1 x_1 x1​这个因子)
a 1 , b 1 , c 1 a_1, b_1,c_1 a1​,b1​,c1​中至少有一个是 p 1 p_1 p1​(因为他们的最小公倍数是L‘,如果 a 1 , b 1 , c 1 a_1, b_1,c_1 a1​,b1​,c1​都不是 p 1 p_1 p1​,那么他们的乘积也就是公倍数(不是最小公倍数,因为xyz不一定互质)的分解不存在 x 1 p 1 x_1^{p_1} x1p1​​这一项)
所以 a 1 , b 1 , c 1 a_1, b_1,c_1 a1​,b1​,c1​至少一个是0,至少一个是 p 1 p_1 p1​ ,情况如下:

  • 1个0, 2个p1, (0, p1, p1) , (p1, 0, p1), (p1, p1, 0) ,3种
  • 2个0 , 1个p1,(0, 0, p1), (p1, 0, 0), (0, p1, 0), 3种
  • 1个0, 1个p1,1~p1-1,(0, p1, 1~p1-1), … A 3 2 ( p 1 − 1 ) = 6 ( p 1 − 1 ) A^2_3(p_1 - 1) = 6(p_1-1) A32​(p1​−1)=6(p1​−1)

所以总共有 6 p 1 种情况 6p_1种情况 6p1​种情况,这是第一项的情况数,还有第二项,第三项…
根据乘法定理,总情况数= 6 p 1 ∗ 6 p 2 . . . ∗ 6 p m 6p_1*6p_2...*6p_m 6p1​∗6p2​...∗6pm​

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>

using namespace std;
int main() {

	int t;
	scanf("%d", &t);
	while (t--) {
		int g, l;
		scanf("%d%d", &g, &l);
		if (l % g != 0) {
			printf("0\n");
			continue;
		}
		l = l / g;
		int x = 2; // 对l进行分解, l = 2^p1 + 3^p2 + ..
		int ans = 1;
		while (l > 1) {
			int cnt = 0; // 计算p1, p2..
			while (l % x == 0) {
				l = l / x;
				cnt++;
			}
			if (cnt > 0) {
				ans *= 6 * cnt;
			}
			
			x++;
		}
		printf("%d\n", ans);
	}

	return 0;
}
5、癌症数据预处理技术与深度学习在癌症预测中的应用 本文详细介绍了癌症数据预处理技术和深度学习在癌症预测中的应用。针对CT扫描图像、X射线图像、超声图像、基因表达数据和文本数据等不同类型的癌症数据,分别阐述了去噪、插值、配准、归一化等预处理技术的具体方法。同时,分析了深度学习在乳腺癌、白血病和宫颈癌预测中的作用,结合相关影响因素探讨了模型的应用潜力。此外,还总结了深度学习在癌症预测中面临的挑战及未来发展方向,为癌症的早期诊断与精准预测提供了理论支持和技术参考。 阅读详情

相关推荐

AXI Timer IP核使用说明

AXI Timer是提供定时技术功能的集成IP核,具有时间生成、事件捕获、产生PWM波以及产生中断的功能,下面具体讲述Timer IP核的使用说明。

weixin_43418104的博客 2488

刷题笔记(第七天)

今天做的题,基本上没有重要的知识点、和需要太多思考的地方

m0_62508027的博客 348

微机原理课程设计-模拟十字路口交通信号灯

一、设计任务描述 1.1设计目的 通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 1.2 设计要求 控制LED灯,按照十字路口红绿灯的原理亮灭显示: (1) 东西方向车辆放行x秒...

Learning_is_endless的博客 2万+

LeetCode热题100 刷题笔记(第七天)双指针法 「 三数之和 」

本文讨论了解决三数之和问题的算法思路。给定一个整数数组,需要找出所有不重复的三元组,使其和为0。核心解法是:先对数组排序,然后固定一个数,使用双指针在剩余数组中寻找满足条件的另外两个数。文章提供了Java代码框架,包含排序、去重和双指针等关键步骤,但代码尚未完成。作者自嘲编程能力有待提高,并希望通过刷题来提升算法水平。该问题需要注意处理重复三元组的情况。

2301_81189772的博客 88

基于Python大数据的智能交通分析系统

该系统能够实时监测交通状况,分析交通流量,预测交通趋势,为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验。它能够为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验,促进交通产业的健康发展。数据采集层:通过传感器、GPS设备、交通摄像头等数据源,实时采集交通数据,如车辆速度、位置、道路拥堵情况等。数据分析层:运用统计学方法、机器学习算法等,对处理后的数据进行深入分析,挖掘交通规律,预测交通趋势。

qq3828614760的博客 2969

常规波束形成——时域波束形成、频域波束形成

本文介绍了波束成形,包括时域波束成形和频域波束成形,并解释了在实现过程可能存在疑惑的相位补偿。

Candy_Editor的博客 3658

【第七天】 LeetCode刷题笔记分享 | 容易篇 | 面试题02.03 删除中间结点

文章目录一、题目信息1.1 题目描述1.2 示例二、题解2.1 解法12.2 解法1的优化 一、题目信息 1.1 题目描述 实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。 1.2 示例 输入:单向链表a->b->c->d->e->f中的节点c 结果:不返回任何数据,但该链表变为a->b->d->e->f 二、题解 2.1 解法1 class Solution { public: void de

weixin_45615071的博客 376

ESP32学习,驱动LED点阵屏,SD卡播放GIF动图

搬运就可以实现效果,如果有不足,请批评指正。下步该学一下如何文章上视频了,老是截图不方便展示效果。

u011625956的博客 1868

LeetCode刷题笔记(7)

LeetCode刷题笔记(7) 背景 今天是刷LeetCode的第七天,嗯,没有那么难受以及无法接受了,感觉还可以。今天结束了贪心算法的最后三道题目,明天就是二分法了。 763、划分字母区间 输入:S = “ababcbacadefegdehijhklij” 输出:[9,7,8] 解释: 划分结果为 “ababcbaca”, “defegde”, “hijhklij”。 每个字母最多出现在一个片段中。 像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较少。

weixin_44580808的博客 270

通信算法之264: DJI O2 协议物理层逆向工程解析

对于 DroneID,标志之间的间隙由循环前缀 (CP) 填充:每个标志末尾的副本附加在相应标志的开头。有了关于确切标志开始的信息,可以使用 FFT 将标志转移到频域 - 来自时域的 1024 个样本导致频域中的 1024 个子载波。使用比特流的解扰和涡轮解码,并将生成的数据映射到如上的DroneID 结构,通过逆向工程在无人机的固件中找到了它。注意到一些无人机(Mavic 2 和更早的 OcuSync 无人机)不发送第一个标志(标志 1),这导致更短的帧持续时间为 576 µs。//产品型号数字代号。

leegang12的专栏 3942

3dmax文件格式转换——.max 转换为 .flt(解决转换后.flt没有纹理贴图的问题)

本文主要介绍如何在3dmax中将.max格式文件转换为.flt格式文件,并解决转换后的文件没有纹理贴图的问题。 在3dmax中,将.max文件转换为.flt格式,只需导出选择.flt格式即可,但是导出的文件在osgEarth中加载后,缺少纹理和贴图。 下面是解决方案: 1、选中加载的模型,然后点击 渲染-> 渲染到纹理 2、将 渲染到纹理 子窗口往下拉,点击 添加 按钮,添加 ...

cchangcs 6167

第七天 - 笔记

刚才整理大冰的《乖,摸摸头》的时候,我把余华的这本《第七天》拿了出来,我实在诚惶诚恐啊!不是因为害怕什么鬼混四处游荡,小说中的主鬼公,在人间游荡七日,是留恋什么吧,我实在读不出来深刻的内涵啊!莫非是我太浅薄了吗,然后我看到了我买到的《如何阅读一本小说》,嗯,我一定要把这本书领悟透彻了!不然的话,美食品不出来美味、美女看不到其内涵、美景看不出来到底哪里美,实在是人生的一大遗憾啊!

mediocre117的博客 340

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(2)- 核心控制消息;会话管理;测距会话管理

测距是UWB最核心的应用。为了方便应用调用测距接口,FIRA统一了UCI命令格式,这样各个厂商可以互相兼容。

Ankie资深技术项目经理 1277

python自学第七天笔记

虽然初次接触这些概念可能有些抽象,但通过实践创建简单的类和对象,会逐渐掌握OOP的精髓。print(f"你好,我叫{self.name},今年{self.age}岁。类是创建对象的蓝图,而对象是类的实例。return f"{self.name}说:喵喵!print(dog.speak()) # 输出:小白说:汪汪!print(cat.speak()) # 输出:小花说:喵喵!p1.greet() # 输出:你好,我叫张三,今年25岁。animal_speak(cat) # 输出:小花说:喵喵!

2509_93934144的博客 368

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

30天自制操作系统第七天学习笔记(u盘软盘双启动版本)

暑假学习小日本的那本书:30天自制操作系统 qq交流群:122358078    ,更多学习中的问题、资料,群里分享 environment:开发环境:ubuntu 第七天的学习思考: 从第七天的学习,我感觉有些内容已经有比较高的抽象层次了。而且有些知识是以前从没有接触过的,我想这些内容就是x86与arm,与单片机不同的一些地方。 下面是学习过程中的一些感想,记录下来,对以后的学

1101

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

随缘刷题算法学习笔记

文章目录前言一、第一天总结 前言 每日一题算法,快乐源泉,当记录用~~ 一、第一天 题目:剑指 Offer 03. 数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof 解..

weixin_44181180的博客 550

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

李忠汇编语言-初学-第七天

学习目标 第九章 学习小结 学习内容 学习时间 学习引申 学习检测

Ruter的博客 629

团队冲刺第七天

今天是团队冲刺第七天 昨天完成了笔记的基本功能的实现,新建并保存笔记 今天继续做关于插入图片的功能模块 遇到的困难有:本机图片插入不正确 转载于:https://www.cnblogs.com/yyting/p/5444126.html...

weixin_30336061的博客 76

学习MySQL的第七天

须知少日拏云志,曾许人间第一流

努力奋斗的小杨 2022

第七天笔记

用户帐户是系统安全的基础。系统上的每个进程(运行程序)都以特定用户身份运行。每个文件都有一个特定用户作为其所有者。文件所有权有助于系统对文件用户实施访问控制。正在运行的进程关联的用户确定该进程可访问的文件和目录。用户使用username标识并使其更易于使用。在内部,系统通过分配给它们的唯一标识号,用户ID或UID来区分用户帐户。如果用户使用用户帐户,则通常会为其分配一个密码,用户在登录时将使用该密码来证明他们是实际的授权用户。

ZJ294003765的博客 774

《Linux就该这么学》上课第七天的笔记

今天是开课第七天,讲了上周遗留的while和case循环外加计划任务。 对于循环语句,基本只能看懂,还需多多练习。 1. 2. 3.

qq_40383366的博客 124

java小白第七天

抽象类和接口

2402_83456057的博客 1074

c笔记(第七天)字符串

【代码】c笔记(第七天)字符串。

2201_75363331的博客 162

百问网七天物联网课程笔记(第七天)

在第七天的课程中,分别使用单任务和多任务展示了基于stm32的mqtt通信控制led灯的操作。这个项目通过复制接收,因此缓冲器必须提供足够大的空间。复制进缓冲器的字节数,在队列创建时已经定义。传递项目到一个队列中的前面。这个项是复制队列,不是引用。传递项目到一个队列中的后面。是一个调用xQueueGenericSend()的宏。为新的队列分配所需的存储内存,并返回一个队列处理。一个调用 xQueueGenericReceive() 函数的宏。是一个调用xQueueGenericSend()的宏。

cn_hexia的博客 1064

谷粒商城学习笔记,第七天:性能压测+缓存+分布式锁

谷粒商城学习笔记,第七天:性能压测+缓存+分布式锁 一、性能压测 我们希望通过压测发现其他测试更难发现的错误:内存泄漏、并发与同步。 1、性能指标 吞吐量、响...

倚书依杖听河流博客 561

Go 学习笔记 · 进阶篇 · 第七天:常用标准库进阶

Go 的标准库,覆盖 Web、文件、时间、网络、命令行等全场景语法一致、轻便好用、不依赖第三方net/httpos/io是打工人三大护身符今日咒语:“你想要的功能,Go 标准库都有。

啊不行了,要长脑子了 6080
上一篇: 【刷题笔记】第六天
下一篇: 【刷题笔记】第八天
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值