牛客周赛 Round 79

题目目录

  • A 小红的合数寻找
    • 解题思路
    • 参考代码
  • B 小红的小球染色
    • 解题思路
    • 参考代码
  • C 小红的二叉树
    • 解题思路
    • 参考代码
  • D 小红的“质数”寻找
    • 解题思路
    • 参考代码
  • E 小红的好排列
    • 解题思路
    • 参考代码
  • F 小红的小球染色期望
    • 解题思路
    • 参考代码

A 小红的合数寻找

\hspace{15pt} 小红拿到了一个正整数 x x x,她希望你在 [ x , 2 × x ] [x, 2 \times x] [x,2×x] 区间内找到一个合数,你能帮帮她吗?

\hspace{15pt} 一个数为合数,当且仅当这个数是大于 1 1 1 的整数,并且不是质数。

解题思路

因为范围比较小,所以可以暴力枚举答案。
但其实会发现除了2以外的任何偶数都是合数,所以只要 2 × x 2 \times x 2×x 不是偶数 2 2 2 也就是 x x x 不为 1 1 1 的情况下任何的 x x x 都有答案 2 × x 2 \times x 2×x

参考代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;void solve(){int x;cin >> x;if(x != 1){cout << 2 * x << "\n";return;}cout << "-1\n";}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;
//	cin >> t;while(t --){solve();}
}

B 小红的小球染色

\hspace{15pt} n n n 个白色小球排成一排。小红每次将随机选择两个相邻的白色小球,将它们染成红色。小红将持续这个操作直到无法操作,请你计算小红操作次数可能的最小值和最大值。

解题思路

首先最大值很显然是 n / 2 n / 2 n/2 个,最小值贪心的去取的话会发现肯定是隔一个染色两个这种,也就耗费三个小球操作一次,但是需要注意如果最后还剩下两个白色小球的话也可以染色,所以最小值其实就是 ( n + 1 ) / 3 (n + 1) / 3 (n+1)/3个。

如下图:7、8小球要被染色成红色。

在这里插入图片描述

参考代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;void solve(){int n;cin >> n;cout << (n + 1) / 3 << " " << n / 2 << "\n";
}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;
//	cin >> t;while(t --){solve();}
}

C 小红的二叉树

\hspace{15pt} 小红想知道,深度为 n n n 的满二叉树 [1] ^{\texttt{[1]}} [1]有多少条长度为 2 2 2 的简单路径 [2] ^{\texttt{[2]}} [2]?由于答案可能很大,请将答案对 ( 1 0 9 + 7 ) (10^9+7) (109+7) 取模后输出。
\hspace{15pt} 在本题中,两条简单路径所包含的点集不同时,被视为不同的。例如,路径 u − v u-v uv 与路径 v − u v-u vu 被视为相同的,因为它们均包含点 u u u 与点 v v v

\hspace{15pt} 一棵深度为 h h h 的满二叉树 [1] ^{\texttt{[1]}} [1]由恰好 2 h − 1 2^h-1 2h1 个节点组成,每一个节点要么是叶子节点,要么有 2 2 2 个儿子,并且全部叶子节点的深度均为 h h h
\hspace{15pt} 简单路径 [2] ^{\texttt{[2]}} [2]是指这样一条路径,其经过的顶点和边互不相同。

解题思路

在这里插入图片描述
首先稍微观察一下这棵树能发现每个鸡爪(蓝色部分)都是都是一条简单路径,而且每层的鸡爪数量从上往下每层是上一层的 2 2 2 倍。这里 n n n 大于等于 2 2 2 才会计算这部分的简单路径。

在这里插入图片描述
其次,红、蓝、紫、绿圈的每个部分也都是一条简单路径,并且从上往下也是每层是上一层的 2 2 2倍。这里 n n n 大于 2 2 2 才会计算这部分的简单路径。

参考代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int mod = 1e9 + 7;
i64 qm(i64 x,i64 y){i64 res = 1;while(y){if(y & 1){res = res * x % mod;}x = x * x % mod;y >>= 1;}return res;
}
void solve(){int n;cin >> n;int ans = 0;for(int i = 2;i <= n;i ++){ans = ans + qm(2,i - 2);ans %= mod;}for(int i = 3;i <= n;i ++){ans = ans + qm(2,i - 1);ans %= mod;}cout << ans << "\n";
}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;
//	cin >> t;while(t --){solve();}
}

D 小红的“质数”寻找

\hspace{15pt} 小红拿到了一个正整数 x x x,她希望你在 [ x , 2 × x ] [x, 2 \times x] [x,2×x] 区间内找到一个正整数,满足该正整数所有数位之和为一个质数,你能帮帮她吗?

解题思路

首先这题的数据范围 x ( 1 ≦ x ≦ 1 0 100 000 ) x \left(1\leqq x\leqq 10^{100\,000}\right) x(1x10100000)超大,直接输入不可行,用字符串来输入,这么大的数据就算 O ( N ) O(N) O(N) 都无法得到答案,那么我们思考观察是不是一个特性或者结论类的题。那么好,确实通过观察,我们其实只需要判断第一个字符就可以得出答案,且无论如何都有满足条件的质数。

看代码应该就能理解了。

参考代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using ld = long double;
const int N = 2e5 + 10;
void solve(){string s;cin >> s;int x = s[0] - '0';int ans = -1;if(x == 1){ans = 2;}if(x == 2){ans = 3;}if(x == 3){ans = 5;}if(x == 4 || x == 5 || x == 6){ans = 7;}if(x == 7 || x == 8 || x == 9){ans = 11;}cout << ans;for(int i = 1;i < s.size();i ++){cout << "0";}cout << "\n";
}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while(t --){solve();}
}

E 小红的好排列

\hspace{15pt} 小红认为一个偶数长度为 n n n 的排列 { a 1 , a 2 , … , a n } \{a_1,a_2,\dots,a_n\} {a1,a2,,an} 是好排列,当且仅当恰好有一半的 i i i 使得 a i × i a_i \times i ai×i 3 3 3 的倍数。
\hspace{15pt} 小红想知道,全部长度为 n n n 的排列中,共有多少个好排列?由于答案可能很大,请将答案对 ( 1 0 9 + 7 ) (10^9+7) (109+7) 取模后输出。

\hspace{15pt} 长度为 n n n 的排列是由 1 ∼ n 1 \sim n 1n n n n 个整数、按任意顺序组成的数组,其中每个整数恰好出现一次。例如, { 2 , 3 , 1 , 5 , 4 } \{2,3,1,5,4\} {2,3,1,5,4} 是一个长度为 5 5 5 的排列,而 { 1 , 2 , 2 } \{1,2,2\} {1,2,2} { 1 , 3 , 4 } \{1,3,4\} {1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

解题思路

排列组合。题目要求恰好有一半的 i i i 使得 a i × i a_i \times i ai×i 3 3 3 的倍数。
首先一个长度为 n n n 的排列中有 n / 3 n / 3 n/3个数是 3 3 3 的倍数,我们暂且记为 a a a,其次我们把一半的数也就是 n / 2 n / 2 n/2 记为 b b b 。且 a a a 还是排列中下标 i i i 3 3 3 的倍数的个数。也就是说无论如何都一定最少有 a a a 个满足 a i ∗ i a_i * i aii 的数。那么我们只需要考虑 a a a 个数选 b − a b - a ba 个在下标不是 3 3 3 的倍数的下标中如何排列即可。我们先把 b − a b - a ba 记为 c c c

我们来举个例子:假设 n n n 为 6。
然后我们把下标为 3 3 3 的倍数的放一堆,不是倍数的放一堆,然后再考虑 1 1 1 n n n 的数如何去放。
在这里插入图片描述

其中,排列 A n k A_n^k Ank 的公式为:

A n k = n ! ( n − k ) ! A_n^k = \frac{n!}{(n - k)!} Ank=(nk)!n!

组合 C n k C_n^k Cnk 的公式为:

C n k = ( n k ) = n ! k ! ( n − k ) ! C_n^k = \binom{n}{k} = \frac{n!}{k!(n - k)!} Cnk=(kn)=k!(nk)!n!

除法转化为乘法逆元。

参考代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
using i64 = long long;
using ld = long double;
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
int fac[N];
void init(int n){fac[0] = 1;for(int i = 1;i <= n;i ++){fac[i] = fac[i - 1] * i % mod;} 
}
int qm(int x,int y){int res = 1;while(y){if(y & 1){res = res * x % mod;}x = x * x % mod;y >>= 1;}return res;
}
int C1(int x,int y){return fac[x] * qm(fac[x - y],mod - 2) % mod; 
}
int C2(int x,int y){return fac[x] * qm(fac[x - y],mod - 2) % mod * qm(fac[y],mod - 2) % mod; 
}
void solve(){int n;cin >> n;init(n);int a = n / 3;int b = n / 2;int c = b - a;int ans = 1;ans = C1(n - a,c) * C1(a,a - c) % mod * C1(n - a,n - a) % mod * C2(a,c) % mod;cout << ans << "\n";}
signed main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;
//	cin >> t;while(t --){solve();}
}

F 小红的小球染色期望

\hspace{15pt} n n n 个白色小球排成一排。小红每次将随机选择两个相邻的白色小球,将它们染成红色。小红将持续这个操作直到无法操作,请你计算小红操作次数的期望。

解题思路

概率期望题。
n n n 等于 2 2 2 时,期望为:
E X = 1 × ( 1 + 0 + 0 ) EX = 1\times(1 + 0 + 0) EX=1×(1+0+0)

n n n 等于 3 3 3 时,期望为:
E X = 1 2 × ( 1 + 0 + 0 ) + 1 2 × ( 1 + 0 + 0 ) = 1 EX = \frac{1}{2}\times(1 + 0 + 0) + \frac{1}{2}\times(1 + 0 + 0) = 1 EX=21×(1+0+0)+21×(1+0+0)=1

n n n 等于 4 4 4 时,期望为:
E X = 1 3 × ( 1 + 0 + 1 ) + 1 3 × ( 1 + 0 + 0 ) + 1 3 × ( 1 + 1 + 0 ) = 5 / 3 。 EX =\frac{1}{3}\times(1 + 0 + 1) + \frac{1}{3}\times(1 + 0 + 0) + \frac{1}{3}\times(1 + 1 + 0) = 5 / 3。 EX=31×(1+0+1)+31×(1+0+0)+31×(1+1+0)=5/3

然后我们来看个 n = 6 n = 6 n=6 的推导情况再看上面式子会更清晰。

在这里插入图片描述

下面我们来计算每对小球的期望:
红色的一对小球也就是第 1 、 2 1、2 12 个小球被选择的概率为 1 5 \frac{1}{5} 51,所以期望为:
f ( 红色 ) = ( 1 + f ( 0 ) + f ( 4 ) ) f(红色) = (1 + f(0) + f(4)) f(红色)=(1+f(0)+f(4))
其中 f ( 0 ) f(0) f(0) 为这对小球左边 0 0 0 个小球的期望, f ( 4 ) f(4) f(4) 为这对小球右边 4 4 4 个小球的期望

其他的也是同样的道理。

所以我们可以大概推导到这么期望计算式子:
f ( n ) = 1 n − 1 × ( 1 + f ( x ) + f ( y ) ) f(n) = \frac{1}{n - 1}\times(1 + f(x) + f(y) ) f(n)=n11×(1+f(x)+f(y)),其中取值区间为 [ 1 , n ) [1,n) [1,n) (左闭右开)。
这里的 x x x 为 当前这对小球的左边小球有的小球个数, y y y 为 当前这对小球的右边边小球有的小球个数
稍微推导一下就是:
f ( n ) = 1 n − 1 × ( 1 + f ( x ) + f ( y ) ) f(n) = \frac{1}{n - 1}\times(1 + f(x) + f(y) ) f(n)=n11×(1+f(x)+f(y))
   = ∑ i = 1 n − 1 1 n − 1 × ( 1 + f ( i ) + f ( n − ( i + 1 ) ) ) \sum_{i=1}^{n - 1} \frac{1}{n - 1}\times(1 + f(i) + f(n - (i + 1)) ) i=1n1n11×(1+f(i)+f(n(i+1)))
   = 1 n − 1 × ∑ i = 1 n − 1 ( 1 + f ( i ) + f ( n − ( i + 1 ) ) ) \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}(1 + f(i) + f(n - (i + 1)) ) n11×i=1n1(1+f(i)+f(n(i+1)))
   = 1 n − 1 × ∑ i = 1 n − 1 1 + 1 n − 1 × ∑ i = 1 n − 1 f ( i − 1 ) + 1 n − 1 × ∑ i = 1 n − 1 f ( n − ( i + 1 ) ) \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}1 +\frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(i - 1) + \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(n -(i + 1)) n11×i=1n11+n11×i=1n1f(i1)+n11×i=1n1f(n(i+1))
   = 1 n − 1 × ( n − 1 ) + 1 n − 1 × ∑ i = 1 n − 1 f ( i − 1 ) + 1 n − 1 × ∑ i = 1 n − 1 f ( n − ( i + 1 ) ) \frac{1}{n - 1}\times (n -1) +\frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(i - 1) + \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(n -(i + 1)) n11×(n1)+n11×i=1n1f(i1)+n11×i=1n1f(n(i+1))
   = 1 + 1 n − 1 × ∑ i = 1 n − 1 f ( i − 1 ) + 1 n − 1 × ∑ i = 1 n − 1 f ( n − ( i + 1 ) ) 1+\frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(i - 1) + \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(n -(i + 1)) 1+n11×i=1n1f(i1)+n11×i=1n1f(n(i+1))

此时,令 j = i − 1 j = i - 1 j=i1,带入得到:

   = 1 + 1 n − 1 × ∑ j = 0 n − 2 f ( j ) + 1 n − 1 × ∑ i = 1 n − 1 f ( n − ( i + 1 ) ) 1+\frac{1}{n - 1}\times\sum_{j=0}^{n - 2}f(j) + \frac{1}{n - 1}\times\sum_{i=1}^{n - 1}f(n -(i + 1)) 1+n11×j=0n2f(j)+n11×i=1n1f(n(i+1))

再令 j = n − ( i + 1 ) j = n - (i + 1) j=n(i+1),代入得到:

   = 1 + 1 n − 1 × ∑ j = 0 n − 2 f ( j ) + 1 n − 1 × ∑ j = n − 2 0 f ( j ) 1+\frac{1}{n - 1}\times\sum_{j=0}^{n - 2}f(j) + \frac{1}{n - 1}\times\sum_{j=n-2}^{0}f(j) 1+n11×j=0n2f(j)+n11×j=n20f(j)
   = 1 + 1 n − 1 × ∑ j = 0 n − 2 f ( j ) + 1 n − 1 × ∑ j = 0 n − 2 f ( j ) 1+\frac{1}{n - 1}\times\sum_{j=0}^{n - 2}f(j) + \frac{1}{n - 1}\times\sum_{j=0}^{n-2}f(j) 1+n11×j=0n2f(j)+n11×j=0n2f(j)
   = 1 + 2 n − 1 × ∑ j = 0 n − 2 f ( j ) 1+\frac{2}{n - 1}\times\sum_{j=0}^{n - 2}f(j) 1+n12×j=0n2f(j)

然后我们把 ∑ j = 0 n − 2 f ( j ) \sum_{j=0}^{n - 2}f(j) j=0n2f(j) 用前缀和计算,即 s u m [ i ] = s u m [ i − 1 ] + f [ i ] sum[i] = sum[i - 1] + f[i] sum[i]=sum[i1]+f[i],所以 n n n 个小球的期望就是:
f ( n ) = 1 + 2 n − 1 × s u m [ i − 2 ] f(n) = 1+\frac{2}{n - 1}\times sum[i - 2] f(n)=1+n12×sum[i2]
需要稍微注意初始化 f [ 0 ] = f [ 1 ] = 0 , f [ 2 ] = 1 , s u m [ 2 ] = 1 f[0] = f[1] = 0,f[2] = 1,sum[2] = 1 f[0]=f[1]=0,f[2]=1sum[2]=1
最后套公式除法变为乘法逆元就可以了。

参考代码

#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using ld = long double;
const int N = 2e5 + 10;
const int mod = 1e9 + 7;
i64 qm(i64 x,i64 y){i64 res = 1;while(y){if(y & 1){res = res * x % mod;}x = x * x % mod;y >>= 1;}return res;
}
void solve(){int n;cin >> n;vector<i64> f(n + 1),sum(n + 1);f[2] = 1,sum[2] = 1;for(int i = 3;i <= n;i ++){f[i] = 1 + 2 * qm(i - 1,mod - 2) * sum[i - 2] % mod;sum[i] = sum[i - 1] + f[i] % mod;}cout << f[n] << "\n";
}
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;
//	cin >> t;while(t --){solve();}
}

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

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

相关文章

《苍穹外卖》项目学习记录-Day11订单统计

根据起始时间和结束时间&#xff0c;先把begin放入集合中用while循环当begin不等于end的时候&#xff0c;让begin加一天&#xff0c;这样就把这个区间内的时间放到List集合。 查询每天的订单总数也就是查询的时间段是大于当天的开始时间&#xff08;0点0分0秒&#xff09;小于…

电子电器架构 --- 电子电气架构设计要求与发展方向

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

DeepSeek 的含金量还在上升

大家好啊&#xff0c;我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评&#xff0c;除此之外&#xff0c;也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章&#xff0c;探讨 DeepSeek 在使用 GPU 进行模型训练…

Fastdds学习分享_xtpes_发布订阅模式及rpc模式

在之前的博客中我们介绍了dds的大致功能&#xff0c;与组成结构。本篇博文主要介绍的是xtypes.分为理论和实际运用两部分.理论主要用于梳理hzy大佬的知识&#xff0c;对于某些一带而过的部分作出更为详细的阐释&#xff0c;并在之后通过实际案例便于理解。案例分为普通发布订阅…

OpenGL学习笔记(五):Textures 纹理

文章目录 纹理坐标纹理环绕方式纹理过滤——处理纹理分辨率低的情况多级渐远纹理Mipmap——处理纹理分辨率高的情况加载与创建纹理 &#xff08; <stb_image.h> &#xff09;生成纹理应用纹理纹理单元练习1练习2练习3练习4 通过上一篇着色部分的学习&#xff0c;我们可以…

unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键

目录 1 用Input接口去监测&#xff1a;鼠标&#xff0c;键盘&#xff0c;虚拟轴&#xff0c;虚拟按键 2 鼠标 MouseButton 事件 2.1 鼠标的基本操作 2.2 测试代码 2.3 测试情况 3 键盘Key事件 3.1 键盘的枚举方式 3.2 测试代码同上 3.3 测试代码同上 3.4 测试结果 4…

Flink2支持提交StreamGraph到Flink集群

最近研究Flink源码的时候&#xff0c;发现Flink已经支持提交StreamGraph到集群了&#xff0c;替换掉了原来的提交JobGraph。 新增ExecutionPlan接口&#xff0c;将JobGraph和StreamGraph作为实现。 Flink集群Dispatcher也进行了修改&#xff0c;从JobGraph改成了接口Executio…

AJAX笔记进阶篇

黑马程序员视频地址&#xff1a; AJAX-Day04-01.同步代码和异步代码https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p47https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2…

利用Muduo库实现简单且健壮的Echo服务器

一、muduo网络库主要提供了两个类&#xff1a; TcpServer&#xff1a;用于编写服务器程序 TcpClient&#xff1a;用于编写客户端程序 二、三个重要的链接库&#xff1a; libmuduo_net、libmuduo_base、libpthread 三、muduo库底层就是epoll线程池&#xff0c;其好处是…

【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】从计算机基础到HTML开发:Web开发的第一步

会议官网&#xff1a;www.acvra.org 简介 2025年计算机视觉研究进展与应用&#xff08;ACVRA 2025&#xff09;将于2025年2月28-3月2日在中国广州召开&#xff0c;将汇聚世界各地的顶尖学者、研究人员和行业专家&#xff0c;聚焦计算机视觉领域的最新研究动态与应用成就。本次…

Rust 所有权特性详解

Rust 所有权特性详解 Rust 的所有权系统是其内存安全的核心机制之一。通过所有权规则&#xff0c;Rust 在编译时避免了常见的内存错误&#xff08;如空指针、数据竞争等&#xff09;。本文将从堆内存与栈内存、所有权规则、变量作用域、String 类型、内存分配、所有权移动、Cl…

【Git】一、初识Git Git基本操作详解

文章目录 学习目标Ⅰ. 初始 Git&#x1f4a5;注意事项 Ⅱ. Git 安装Linux-centos安装Git Ⅲ. Git基本操作一、创建git本地仓库 -- git init二、配置 Git -- git config三、认识工作区、暂存区、版本库① 工作区② 暂存区③ 版本库④ 三者的关系 四、添加、提交更改、查看提交日…

【Envi遥感图像处理】009:envi5.6设置中文界面的方法

ENVI软件从5.0版本开始,界面发生了大的变化,并开始支持中文。本文讲述envi5.6设置中文界面的方法。 文章目录 一、中文界面预览二、设置中文界面三、注意事项一、中文界面预览 以下为envi5.6新版的中文界面: 二、设置中文界面 打开英文版的envi5.6软件,首先需要从安装App…

014-STM32单片机实现矩阵薄膜键盘设计

1.功能说明 本设计主要是利用STM32驱动矩阵薄膜键盘&#xff0c;当按下按键后OLED显示屏上会对应显示当前的按键键值&#xff0c;可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。 2.硬件接线 模块管脚STM32单片机管脚矩阵键盘行1PA0矩阵键盘…

鸿蒙Harmony-双向数据绑定MVVM以及$$语法糖介绍

鸿蒙Harmony-双向数据绑定MVVM以及$$语法糖介绍 1.1 双向数据绑定概念 在鸿蒙&#xff08;HarmonyOS&#xff09;应用开发中&#xff0c;双向数据改变&#xff08;或双向数据绑定&#xff09;是一种让数据模型和UI组件之间保持同步的机制&#xff0c;当数据发生变化时&#x…

Chromium132 编译指南 - Android 篇(一):编译前准备

1. 引言 欢迎来到《Chromium 132 编译指南 - Android 篇》系列的第一部分。本系列指南将引导您逐步完成在 Android 平台上编译 Chromium 132 版本的全过程。Chromium 作为一款由 Google 主导开发的开源浏览器引擎&#xff0c;为众多现代浏览器提供了核心驱动力。而 Android 作…

通向AGI之路:人工通用智能的技术演进与人类未来

文章目录 引言:当机器开始思考一、AGI的本质定义与技术演进1.1 从专用到通用:智能形态的范式转移1.2 AGI发展路线图二、突破AGI的五大技术路径2.1 神经符号整合(Neuro-Symbolic AI)2.2 世界模型架构(World Models)2.3 具身认知理论(Embodied Cognition)三、AGI安全:价…

使用 DeepSeek-R1 与 AnythingLLM 搭建本地知识库

一、下载地址Download Ollama on macOS 官方网站&#xff1a;Ollama 官方模型库&#xff1a;library 二、模型库搜索 deepseek r1 deepseek-r1:1.5b 私有化部署deepseek&#xff0c;模型库搜索 deepseek r1 运行cmd复制命令&#xff1a;ollama run deepseek-r1:1.5b 私有化…

C++游戏开发实战:从引擎架构到物理碰撞

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 C 是游戏开发中最受欢迎的编程语言之一&#xff0c;因其高性能、低延迟和强大的底层控制能力&#xff0c;被广泛用于游戏…

计算机网络——三种交换技术

目录 电路交换——用于电话网络 电路交换的优点&#xff1a; 电路交换的缺点&#xff1a; 报文交换——用于电报网络 报文交换的优点&#xff1a; 报文交换的缺点&#xff1a; 分组交换——用于现代计算机网络 分组交换的优点&#xff1a; 分组交换的缺点 电路交换——…