河南萌新联赛2025第(二)场:河南农业大学(补题)

文章目录

  • 前言
  • A.约数个数和
    • 整除分块(相当于约数求和)
      • 相关例题:取模
  • B.异或期望的秘密
    • 二进制的规律
      • 相关例题
        • 累加器
        • 小蓝的二进制询问
    • 乘法逆元
      • 1. 概念
      • 2.基本定义
      • 3.费马小定理
        • 1.定理内容
        • 2.重要推论
  • D.开罗尔网络的备用连接方案
  • E.咕咕嘎嘎!!!(easy)
  • I.猜数游戏(easy)
  • K.打瓦
  • M.米娅逃离断头台
  • 总结

前言

依旧是只会写签到题的一场。


A.约数个数和

题目传送门:约数个数和
在这里插入图片描述
这一题利用到了整除分块,如果不这样的话,数据太大,会时间超限。
AC代码:

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
ll ans=0;
void solve()
{ll n;cin>>n;for(ll l=1,r;l<=n;l=r+1){r=n/(n/l);ans+=(n/l)*(r-l+1);}cout<<ans<<endl;
}
signed main()
{IOS;ll t=1;//cin>>t;while(t--)solve();return 0;}

整除分块(相当于约数求和)

介绍:整除分块(也叫数论分块)是数论和算法竞赛中常用的优化技巧,主要用于高效计算形如
∑i=1nf(i)⋅g(⌊ni⌋)\sum_{i=1}^n f(i) \cdot g\left(\left\lfloor \frac{n}{i} \right\rfloor\right) i=1nf(i)g(in) 的求和式,核心思想是利用「整除的周期性」,将求和式中结果相同的区间合并,减少计算次数。
一、整除分块的核心原理
利用整除的「周期性」对于固定的 n,当 i 从 1 到 n 变化时,⌊ni⌋\left\lfloor \frac{n}{i} \right\rfloorin 的值会分段相同。
例如:(n=10) 时,⌊10i⌋\left\lfloor \frac{10}{i} \right\rfloori10 的取值如下:
i12345678910(\left\lfloor \frac{10}{i} \right\rfloor)10532211111
可以看到,⌊ni⌋\left\lfloor \frac{n}{i} \right\rfloorin 的值会形成连续的区间段(如 i=4,5 时,值都是 2;i=6∼10i=6\sim10 i=610时,值都是 1)。关键发现:
对于某个值 k=⌊ni⌋k = \left\lfloor \frac{n}{i} \right\rfloork=in,所有能使 ⌊ni⌋=k\left\lfloor \frac{n}{i} \right\rfloor = kin=k的 i 会构成一个连续区间 ([l, r]),其中:左端点 l 是当前区间的起始右端点 r 满足:
r=⌊nk⌋=⌊n⌊nl⌋⌋r = \left\lfloor \frac{n}{k} \right\rfloor = \left\lfloor \frac{n}{\left\lfloor \frac{n}{l} \right\rfloor} \right\rfloorr=kn=lnn
利用这一性质,我们可以将原本需要遍历 n 次的求和,优化为遍历所有不同的 k 对应的区间段,时间复杂度从O(n)降到O(n)(因为不同的k最多有2n个)时间复杂度从 O(n) 降到 O(\sqrt{n})(因为不同的 k 最多有 2\sqrt{n} 个)时间复杂度从O(n)降到O(n)(因为不同的k最多有2n个)
模板

long long sum = 0;
for (int l = 1, r; l <= n; l = r + 1) {int k = n / l;r = n / k;  // 计算当前段的右端点sum += (r - l + 1) * k;
}

相关例题:取模

题目传送门:取模
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于这一题,同样可以通过一系列推理,将其转换到整除分块
利用取模的数学定义:
n%i=n−i⋅⌊ni⌋n \% i = n - i \cdot \left\lfloor \frac{n}{i} \right\rfloorn%i=niin因此,原求和式可展开为:
∑i=1n(n%i)=∑i=1n(n−i⋅⌊ni⌋)\sum_{i=1}^n \left( n \% i \right) = \sum_{i=1}^n \left( n - i \cdot \left\lfloor \frac{n}{i} \right\rfloor \right)i=1n(n%i)=i=1n(niin)拆分求和式:
∑i=1n(n%i)=∑i=1nn−∑i=1n(i⋅⌊ni⌋)\sum_{i=1}^n \left( n \% i \right) = \sum_{i=1}^n n - \sum_{i=1}^n \left( i \cdot \left\lfloor \frac{n}{i} \right\rfloor \right)i=1n(n%i)=i=1nni=1n(iin)
对于i求和,可以通过等差数列求和推理出来
AC代码:

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
const ll mod=998244353;
void solve()
{ll n;cin>>n;__int128 ans=0;//特别注意类型,因为数据范围非常大for(__int128 l=1,r;l<=n;l=r+1){ll k=n/l;r=n/k;ans+=k*((r-l+1)*(r-l)/2+(r-l+1)*l)%mod;}ll an=((__int128)n*(__int128)n-ans)%mod;cout<<an<<endl;
}
signed main()
{IOS;ll t=1;// cin>>t;while(t--)solve();return 0;
}

B.异或期望的秘密

题目传送门:异或期望的秘密
在这里插入图片描述
这一题用到的知识就很多了,有关于二进制的规律,以及乘法逆元,还有数学期望的计算;
思路:
通过数据范围可以发现,直接进行循环肯定会时间超限,为此就有了一个很妙的方法,利用到异或以及二进制的规律,通过遍历y在bitset的每一位,通过当前y在二进制下的0与1,与L到R之间相同位数下的1的个数来进行判断,由于异或的性质,相同为0,由此来反着推出贡献为1的总数,最后再通过乘法逆元。
AC代码:

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
const ll mod=1e9+7;
ll qmod(ll x,ll y)//乘法逆元(快速幂)
{ll sum=1;while(y){if(y&1){sum*=x;sum%=mod;}x*=x;x%=mod;y>>=1;}return sum;
}
ll f(ll x,ll i)//计算x第i位的1的个数
{if(x==0)return 0;ll sum=0;ll val=1ll<<i;//每个周期的贡献值ll curr=1ll<<(i+1);//一个周期的大小ll re=x%curr-val+1;//计算不足一个周期的贡献值sum+=val*(x/curr);//计算整周期的贡献sum+= max((ll)0,re);//比较剩余周期是否有贡献值sum%=mod;return sum;
}
void solve()
{ll l,r,y;cin>>l>>r>>y;ll k=r-l+1;ll ans=0;bitset<31>m(y);//方便进行异或for(ll i=0;i<=29;i++){ll num=f(r,i)-f(l-1,i);//计算当前位数的区间1的个数总和if(m[i]==1)num=k-num;//贡献为0的反推出贡献为1的ans+=num;ans%=mod;}cout<<(ans*qmod(k,mod-2))%mod<<endl;//乘法逆元
}
signed main()
{IOS;ll t=1;cin>>t;while(t--)solve();return 0;
}

二进制的规律

1 —— 00001
2 —— 00010
3 —— 00011
4 —— 00100
5 —— 00101
6 —— 00110
7 —— 00111
8 —— 01000
9 —— 01001
10 ——01010
11 —— 01011
12 —— 01100
13 —— 01101
14 —— 01110
15 —— 01111
16 —— 10000
17 —— 10001
18 —— 10010
19 —— 10011
20 —— 10100
通过观察会发现,每一位的周期就是权值的2倍,而权值又是该当前位数的
(2i ),注意位数i是从0开始的,故而周期为2i+1 .
至于求余数的贡献值时,会发现在周期的一半的前一位值是1,故而需要多加上1,因为其是余数减去一半的周期。
关键点:

    if(x==0)return 0;ll sum=0;ll val=1ll<<i;//每个周期的贡献值ll curr=1ll<<(i+1);//一个周期的大小ll re=x%curr-val+1;//计算不足一个周期的贡献值sum+=val*(x/curr);//计算整周期的贡献sum+= max((ll)0,re);//比较剩余周期是否有贡献值

相关例题

累加器

题目传送门:累加器
在这里插入图片描述
在这里插入图片描述
通过观察样例会发现,每位改变的位数,都与当前的2的位数次方
AC代码;

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
#define pii pair<ll,ll>
const ll N=1e6+10;
ll f(ll x)//进行前缀和
{ll sum=0;ll y=log2(x);for(ll i=0;i<y;i++){ll k=(ll)pow(2,i);//关键规律sum+=x/k;}return sum;
}
void solve()
{ll x,y;cin>>x>>y;cout<<f(x+y)-f(x)<<endl;
}
signed main()
{IOS;ll t=1;cin>>t;while(t--)solve();return 0;
}
小蓝的二进制询问

题目传送门:小蓝的二进制询问

在这里插入图片描述
这一题便是之前的规律了;
AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
#define pii pair<ll,ll>
const ll N=1e6+10;
const ll mod=998244353;
ll f(ll x)
{ll sum=0;ll y=log2(x)+1;//计算当前的位数if(x==0)return 0;ll val=1;for(ll i=0;i<=y;i++){val=1ll<<i;//权值ll curr=val*2;//周期sum+=val*(x/curr);//完整周期总和ll re=x%curr-val+1;//剩余周期的贡献sum+=max((ll)0,re);//判断是否有贡献sum%=mod;}return sum%mod;
}
void solve()
{ll x,y;cin>>x>>y;cout<<(f(y)-f(x-1)+mod)%mod<<endl;
}
signed main()
{IOS;ll t=1;cin>>t;while(t--)solve();return 0;
}

乘法逆元

1. 概念

在数学中,乘法逆元是一个与乘法运算相关的重要概念,它描述了两个数之间的一种特殊关系。简单来说,对于给定的数 a,如果存在另一个数 b,使得它们的乘积等于乘法单位元(通常是 1),那么 b 就被称为 a 的乘法逆元。

2.基本定义

设 a 是一个数(或更广泛的代数结构中的元素),若存在数 b 满足:a×b=b×a=1a \times b = b \times a = 1a×b=b×a=1
则称 b 是 a 的乘法逆元,记作 b=a−1b = a^{-1}b=a1(读作 “a 的逆”)。这里的 “1” 是乘法单位元,即与任何数相乘都不改变该数的特殊元素(例如整数乘法中,1 就是单位元)。

3.费马小定理

1.定理内容

若 p 是一个质数,且整数 a 不是 p 的倍数(即a与p互质,gcd⁡(a,p)=1)(即 a 与 p 互质,\gcd(a, p) = 1)(即ap互质,gcd(a,p)=1)
则有:ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}ap11(modp)
符号解释:≡(modp)表示“模p同余”,即ap−1除以p的余数等于1。\equiv \pmod{p}表示 “模 p 同余”,即 a^{p-1}除以 p 的余数等于 1。(modp)表示p同余,即ap1除以p的余数等于1

2.重要推论

费马小定理的一个关键应用是求模运算中的乘法逆元。
由定理 ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}ap11(modp)
变形可得:a×ap−2≡1(modp)a \times a^{p-2} \equiv 1 \pmod{p}a×ap21(modp)
这表明:当 p 是质数且 a 与 p 互质时,ap−2modpa^{p-2} \mod pap2modp
就是 a 模 p 的乘法逆元(即a−1≡ap−2(modp))(即 a^{-1} \equiv a^{p-2} \pmod{p})(即a1ap2(modp)

根据费马小定理,当 p 是质数且 gcd⁡(a,p)=1时\gcd(a, p) = 1时gcd(a,p)=1
有:ap−1≡1(modp)a^{p-1} \equiv 1 \pmod{p}ap11(modp)
将等式左边因式分解(把ap−1拆成a×ap−2),得到:a×ap−2≡1(modp)(把 a^{p-1} 拆成 a \times a^{p-2} ),得到:a \times a^{p-2} \equiv 1 \pmod{p}(把ap1拆成a×ap2),得到:a×ap21(modp)

D.开罗尔网络的备用连接方案

题目传送门:开罗尔网络的备用连接方案
在这里插入图片描述
在这里插入图片描述
通过题目,可以发现就是一个加权无向图,来求取经过按位与之后该数二进制下1的个数,

AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e5+10;
vector<ll> p[N];//用来存边
ll a[N];//存该节点的权值
ll ans[N];//保存种类数目
void dfs(ll x,ll w,ll f)
{ll c=a[x]&w;//每次都进行按位与bitset<40>b(c);//为了更好的求1的个数ans[b.count()]++;//统计种类for(ll i:p[x]){if(i!=f)//防止重边也就是防止一个节点遍历两次{dfs(i,c,x);//继续往下搜索i代表的是子节点,c则是要更新的值,x则代表的是父节点}}
}
void solve()
{ll n,q;cin>>n>>q;for(ll i =1;i<=n;i++)cin>>a[i];for(ll i=1;i<n;i++){ll x,y;cin>>x>>y;p[x].push_back(y);//存边,即双向边p[y].push_back(x);}dfs(1,-1,0);//从节点1开始进行搜索while(q--){ll x;cin>>x;cout<<ans[x]<<endl;}
}
signed main()
{IOS;ll t=1;//cin>>t;while(t--)solve();return 0;
}

E.咕咕嘎嘎!!!(easy)

题目传送门:咕咕嘎嘎!!!(easy)
在这里插入图片描述
在这里插入图片描述
对于这一题,既然最大公因数为1的不满足,那就求出最大公因数大于等于2的。

一、问题转化:补集思想 + 容斥原理
题目要求 选 m 个石头,且它们的 gcd 不为 1 的方案数。直接计算较复杂,采用 补集思想 + 容斥原理 转化问题:
补集思想
总合法方案 = 所有 gcd 为 d(d≥2)的方案数之和。
但直接枚举 d 会重复计算(比如 gcd 为 6 的方案会被 d=2 和 d=3 重复统计),因此需要容斥:从大到小枚举 d,减去其倍数的贡献。
容斥原理
定义 f[d] 为选 m 个石头、且它们的 gcd 恰好为 d 的方案数。
但直接求 f[d] 困难,因此先定义 g[d] 为选 m 个石头、且它们的 gcd 是 d 的倍数(即所有选中的数都是 d 的倍数)的方案数。
则根据容斥关系:f[d]=g[d]−∑k>d,d∣kf[k]f[d] = g[d] - \sum_{k > d,\ d|k} f[k]f[d]=g[d]k>d, dkf[k]
通过从大到小枚举 d,用 f[d] -= f[k] 的方式实现容斥。
二,预处理:求组合数
递推:s[i][j] = s[i-1][j-1] + s[i-1][j](选第 i 个元素则从 i-1 选 j-1,不选则从 i-1 选 j)。
这样可以在 O(n^2) 时间内预处理出所有需要的组合数,避免重复计算。
三,核心流程
1. 计算 g[d]:选 m 个 d 的倍数的方案数
对于每个 d(从 1 到 n):
统计 1~n 中是 d 的倍数的数的个数,记为 num = n / d(因为 d, 2d, 3d, …, kd ≤n → k = n/d)。
若 num ≥ m,则从 num 个数中选 m 个的方案数为组合数 s[num][m],即 g[d] = s[num][m];否则 g[d] = 0(不够选 m 个)。

for(ll i=1;i<=n;i++){ll num=n/i;if(num>=m)f[i]=s[num][m];elsef[i]=0;}

2. 容斥修正:从大到小枚举 d
为了得到恰好 gcd 为 d 的方案数 f[d],需要减去所有 d 的倍数 k=2d, 3d, … 的 f[k]:

for(ll i=n;i>=2;i--) {for(ll j=2*i;j<=n;j+=i) {f[i] = (f[i] - f[j] + mod) % mod;}ans = (ans + f[i] + mod) % mod;
}

从大到小枚举:保证处理 d 时,其倍数 k>d 已经被处理过,这样减去的 f[k] 是 “恰好 gcd 为 k” 的方案数,避免重复计算。
(f[i] - f[j] + mod) % mod:防止负数,用 mod 调整。
AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=5e3+10;
const ll mod=1e9+7;
ll s[N][N];
ll f[N];
void pre()//预处理组合数
{for(ll i=0;i<=N;i++){s[i][0]=0;s[i][i]=1;for(ll j=0;j<i;j++){s[i][j]=(s[i-1][j-1]+s[i-1][j]+mod)%mod;}}
}
void slove()
{ll n,m;cin>>n>>m;ll ans=0;for(ll i=1;i<=n;i++){ll num=n/i;//1~n中i的倍数的个数if(num>=m)// 若数量足够选m个f[i]=s[num][m];elsef[i]=0;}// 第二步:容斥原理计算f[d] = 选m个数且gcd恰好为d的方案数// 从大到小枚举d,确保处理d时其倍数已被处理for(ll i=n;i>=2;i--){// 减去所有i的倍数的f[j](这些是gcd为j的方案,已被包含在g[i]中)for(ll j=2*i;j<=n;j+=i){f[i]=(f[i]-f[j]+mod)%mod;}// 累加所有gcd≥2的方案数ans=(ans+f[i]+mod)%mod;}cout<<ans<<endl;
}
signed main()
{IOS;ll t=1;pre();// cin>>t;while(t--)slove();return 0;
}

I.猜数游戏(easy)

题目传送门:猜数游戏(easy)
在这里插入图片描述
签到题没啥说的
AC代码:

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
ll ans=0;
void solve()
{ll n;cin>>n;ll sum=1;while(sum<=n){sum*=2;ans++;}if(sum/2==n)cout<<ans-1<<endl;elsecout<<ans<<endl;
}
signed main()
{IOS;ll t=1;//cin>>t;while(t--)solve();return 0;}

K.打瓦

题目传送门:打瓦
在这里插入图片描述
同样签到题
AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
void solve()
{string s;cin>>s;cout<<"gugugaga"<<endl;
}
signed main()
{IOS;ll t=1;//cin>>t;while(t--)solve();return 0;}

M.米娅逃离断头台

题目传送门:米娅逃离断头台

在这里插入图片描述
简单的数学题
AC代码

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define endl '\n'
const ll N=1e6+10;
double x;
void solve()
{cin>>x;double sum=3.1415926535;double ans=0;if(x==0){printf("0.00\n");return ;}else{ans=(sum*x*x)/8;printf("%.2lf\n",ans);}
}
signed main()
{IOS;ll t=1;//cin>>t;while(t--)solve();return 0;}

总结

对于其他题,尤其a题就是属于没思路的一题
而D题,才开始题目没看太懂,没有建立无向边,建立的是有向边,等到后续给了题目更近一步的解释时,越来越迷糊,图论还是接触的少。

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

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

相关文章

常见中间件漏洞

一、TomcatTomcat put方法任意文件写入漏洞环境搭建&#xff0c;启动时端口被占用就改yml配置文件&#xff0c;改成8081端口。(我这里是8080)cd vulhub-master/tomcat/CVE-2017-12615 docker-compose up -d 去抓包&#xff0c;改成put提交。下面的内容是用哥斯拉生成的木马文件…

27.(vue3.x+vite)以pinia为中心的开发模板(监听watch)

效果截图 代码实现: HelloWorld.vue <template><div style="padding: 20px">介绍:<br />1:使用统一的 watch 来监听store的值。<br

Jenkins 详解

Jenkins 是一个开源的持续集成和持续交付(CI/CD)工具&#xff0c;用于自动化软件开发过程中的构建、测试和部署阶段。以下是关于 Jenkins 的详细介绍&#xff1a; 1. Jenkins 核心概念 1.1 持续集成(CI) 开发人员频繁地将代码变更提交到共享仓库每次提交都会触发自动构建和测试…

动态配置实现过程

查看DCCValueBeanFactory类的完整实现&#xff0c;了解动态配置的实现过程 动态配置实现过程 1. 自定义注解 使用DCCValue注解标记需要动态配置的字段&#xff0c;格式为key:defaultValue&#xff1a; DCCValue("downgradeSwitch:0") private String downgradeSw…

【大模型理论篇】跨语言AdaCOT

参考&#xff1a;AdaCoT: Rethinking Cross-Lingual Factual Reasoning throughAdaptive Chain-of-ThoughtAdaCoT&#xff08;Adaptive Chain-of-Thought&#xff0c;自适应思维链&#xff09;是一项提升大型语言模型&#xff08;LLMs&#xff09;跨语言事实推理能力的新框架。…

vue3项目搭建

前一段时间招聘前端开发,发现好多开发连基本的创建项目都不会,这里总结一下 在Vue 3中,使用Webpack和Vite创建的项目文件结构及语言(JS/TS)的选择有以下主要区别: 1. 创建方式与文件结构差异 方式一、Webpack(Vue CLI) 创建命令: vue create project-name 典型文件结构…

企业签名的多种形式

企业签名有多种形式&#xff0c;可分为企业签名独立版、企业签名稳定版、企业签名共享版等。每一种形式的企业签名都有其独特的特点&#xff0c;其中&#xff1a;  企业签名独立版&#xff1a;其特性主要为稳定性较高&#xff0c;使用者可以通过控制APP的下载量来保证APP的稳…

解构远程智能系统的视频能力链:从RTSP|RTMP协议接入到Unity3D头显呈现全流程指南

在人工智能奔腾的2025年&#xff0c;WAIC&#xff08;世界人工智能大会&#xff09;释放出一个明确信号&#xff1a;视频能力已经成为通往“远程智能”的神经中枢。在无人机、四足机器人、远程施工、巡检等新兴场景中&#xff0c;一套可靠、低延迟、可嵌入头显设备的视频传输系…

Less Less基础

1.lessless是一种动态样式语言&#xff0c;属于CSS预处理器的范畴&#xff0c;它扩展了CSS语言&#xff0c;增加了变量&#xff0c;Mixin&#xff0c;函数等特性&#xff0c;使CSS更易维护和扩展。Less既可以在客户端上运行&#xff0c;也可以借助Node.js在服务端运行。2.Less中…

如何使用 Redis 实现 API 网关或单个服务的请求限流?

使用 Redis 高效实现 API 网关与服务的请求限流 在微服务架构中&#xff0c;对 API 网关或单个服务的请求进行速率限制至关重要&#xff0c;以防止恶意攻击、资源滥用并确保系统的稳定性和可用性。 Redis 凭借其高性能、原子操作和丰富的数据结构&#xff0c;成为实现请求限流的…

图片查重从设计到实现(7) :使用 Milvus 实现高效图片查重功能

使用 Milvus 实现高效图片查重功能本文将介绍如何利用 Milvus 向量数据库构建一个高效的图片查重系统&#xff0c;通过传入图片就能快速从已有数据中找出匹配度高的相似图片。一.什么是图片查重&#xff1f; 图片查重指的是通过算法识别出内容相同或高度相似的图片&#xff0c;…

诱导多能干细胞(iPSC)的自述

自十七年前诱导多能干细胞&#xff08;也称iPS细胞或iPSC&#xff09;技术出现以来&#xff0c;干细胞生物学和再生医学取得了巨大进展。人类iPSC已广泛用于疾病建模、药物发现和细胞疗法开发。新的病理机制已被阐明&#xff0c;源自iPSC筛选的新药正在研发中&#xff0c;并且首…

基于深度学习的医学图像分析:使用DeepLabv3+实现医学图像分割

前言 医学图像分析是计算机视觉领域中的一个重要应用&#xff0c;特别是在医学图像分割任务中&#xff0c;深度学习技术已经取得了显著的进展。医学图像分割是指从医学图像中识别和分割出特定的组织或器官&#xff0c;这对于疾病的诊断和治疗具有重要意义。近年来&#xff0c;D…

Lombok 字段魔法:用 @FieldDefaults 解锁“隐身+锁死”双重特效

前言 项目里总有这样一种神秘现象:明明只是几个字段,却堆满 private final,每次都得机械敲上一遍。有的同事一边敲一边默念“代码规范不能丢”,表情严肃得像在写遗嘱。可惜,规范虽好,手指遭殃。 于是,Lombok 悄然登场,肩扛简洁大旗,手握注解神器,@FieldDefaults 正…

小白如何自学网络安全,零基础入门到精通,看这一篇就够了!

小白如何自学网络安全&#xff0c;零基础入门到精通&#xff0c;看这一篇就够了&#xff01; 小白人群想学网安但是不知道从哪入手&#xff1f;一篇文章告诉你如何在4个月内吃透网安课程&#xff0c;掌握网安技术 一、基础阶段 1.了解网安相关基础知识 了解中华人民共和国网…

前端 vue 第三方工具包详解-小白版

恭喜你迈入Vue世界&#xff01;&#x1f604; 对于前端小白&#xff0c;掌握这些常用第三方包能极大提升开发效率和项目质量。以下是Vue生态中必备的第三方包及小白友好式用法解析&#xff1a;&#x1f9f1; 一、基础工具包&#xff08;每个项目必装&#xff09; 1. Vue Router…

解决mac下git pull、push需要输入密码

解决方法&#xff1a; 1.强制配置 SSH 自动加载钥匙串 编辑 SSH 配置文件 vi ~/.ssh/configHost *AddKeysToAgent yes # 自动将密钥添加到 ssh-agentUseKeychain yes # 明确使用钥匙串存储密码IdentityFile ~/.ssh/id_rsa # 替换为你的私钥路径2.修复 Sh…

内存网格、KV存储和Redis的概念、使用场景及异同

基本概念 内存网格 (In-Memory Data Grid - IMDG) 内存网格是一种分布式内存数据存储技术&#xff0c;具有以下特点&#xff1a;分布式架构 数据跨多个服务器节点分布存储提供线性扩展能力内存优先 主要数据存储在内存中&#xff0c;提供微秒级访问延迟支持持久化作为备份企业级…

【C++算法】87.BFS解决最短路径问题_为高尔夫比赛砍树

文章目录题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;题目链接&#xff1a; 675. 为高尔夫比赛砍树 题目描述&#xff1a; 解法 注意&#xff1a;砍树要从低到高砍。 砍掉1&#xff0c;从1到5到2 砍掉2&#xff0c;从2到5到3 砍掉3&#xff0c;从3到5…

JavaScript内存管理完全指南:从入门到精通

文章目录JavaScript内存管理完全指南&#xff1a;从入门到精通1. 哪些数据类型属于引用类型&#xff08;复杂数据类型&#xff09;&#xff1f;2. 为什么引用类型要存储在堆中&#xff1f;3. 引用类型的内存存储示例示例 1&#xff1a;对象&#xff08;Object&#xff09;示例 …