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

北京交通大学第三届C语言积分赛

作者有言在先:
题解的作用是交流思路,不是抄作业的。可以把重点放在思路分析上而不是代码上,毕竟每个人的代码风格是不一样的,看别人的代码就跟做程序填空题一样。先看明白思路再看代码。
还有就是,deepseek真的很好用!!!

A - Lazy Narek

题目翻译

题目描述

Narek 太懒了,不想自己编写这场比赛的第 3 道题目。他的朋友 Artur 建议他使用 ChatGPT。ChatGPT 生成了 ( n ) 道题目,每道题目由 ( m ) 个字母组成,因此 Narek 有 ( n ) 个字符串。为了增加难度,他通过选择其中的一些字符串(可能一个都不选)并按顺序将它们连接起来,形成一个新字符串。他对这道题目的解题概率定义为 ( score_n - score_c ),其中 ( score_n ) 是 Narek 的得分,( score_c ) 是 ChatGPT 的得分。

Narek 通过从左到右检查选中的字符串来计算 ( score_n )。他首先寻找字母 "n",然后是 "a""r""e""k"。每当找到这些字母的所有出现后,他给 ( score_n ) 加 5,然后从当前位置继续寻找下一个 "n"(他不会回溯,而是继续从当前位置开始)。

在 Narek 完成之后,ChatGPT 会扫描整个字符串,对于 Narek 未使用的每个字母 "n""a""r""e""k",给 ( score_c ) 加 1。

输入

  • 第一行输入一个整数t(1 ≤ t ≤ 105),表示测试用例的数量。
  • 每个测试用例的第一行输入两个整数 n, m(1 ≤ n, m ≤ 103),分别表示字符串的数量和每个字符串的长度。
  • 接下来 ( n ) 行,每行输入一个长度为 ( m ) 的字符串,仅包含小写英文字母。
  • 所有测试用例的 n × m 的总和不超过 ( 106 )。

输出

对于每个测试用例,输出一个整数,表示 ( score_n - score_c ) 的最大值。

示例

输入
4
5 2
nn
aa
rr
ee
kk
1 5
narek
1 4
nare
5 7
nrrarek
nrnekan
uuuuuuu
ppppppp
nkarekz
输出
0
5
0
7
解释
  • 第一个测试用例:Narek 可以选择不选任何字符串,此时得分为 0。如果选择所有字符串,则会形成字符串 nnaarreekk。Narek 可以找到所有的字母,得分为 5;而 ChatGPT 会对未使用的字母各加 1,得分为 5。因此,最终得分为 ( 5 - 5 = 0 )。
  • 第三个测试用例:Narek 如果选择字符串 nare,由于缺少 "k",无法完成完整的单词 "narek",因此得分为 0,而 ChatGPT 会对未使用的 4 个字母各加 1,得分为 4。结果为 ( 0 - 4 = -4 )。因此,最佳选择是不选任何字符串,得分为 0。
  • 第四个测试用例:Narek 需要选择第一个和最后一个字符串,形成 nrrareknkarekz。他可以找到所有的字母,得分为 10,而 ChatGPT 会对未使用的 3 个字母各加 1,得分为 3。因此,最终得分为 ( 10 - 3 = 7 )。

B String Task

题目翻译

Petya 开始参加编程课程。在第一节课上,他的任务是编写一个简单的程序。该程序需要完成以下功能:对于给定的由大写和小写拉丁字母组成的字符串,程序需要:

  1. 删除所有元音字母,
  2. 在每个辅音字母前插入一个字符 .
  3. 将所有大写辅音字母替换为对应的小写字母。

元音字母包括 A, O, Y, E, U, I,其余字母为辅音字母。程序的输入是一个字符串,输出是经过处理后的单个字符串。

请帮助 Petya 完成这个简单的任务。


输入

第一行是 Petya 程序的输入字符串。该字符串仅由大写和小写拉丁字母组成,长度在 1 到 100 之间(包括 1 和 100)。

输出

打印处理后的字符串。保证该字符串不为空。


示例

输入
tour
输出
.t.r

输入
Codeforces
输出
.c.d.f.r.c.s

输入
aBAcAba
输出
.b.c.b

分析

任务:

  1. 剔除掉所有aeiouy
  2. 剩余字母输出前先输出.
  3. 转化为小写字母在输出

优化任务

由于原字符串涉及大小写,而输出只有小写,且为了方便第一项任务的判断,我们对任务转化一下顺序,先进行3操作。

遍历字符串,查看每一个是否合法,合法则输出。

代码及注释

#include<bits/stdc++.h>
using namespace std;const int M = 1000;
char s[M];
char cmp[] = "aoyeui";//非法字符bool check(char t){//判断是否合法for(int i=0 ; i<6 ; i++)if(t==cmp[i]) return false;return true;
}int main()
{scanf("%s", s);int len = strlen(s);for(int i=0 ; i<len ; i++){char c = s[i];if(c < 'a')c += 'a'-'A';//大小写转化if(!check(c)) continue;printf(".%c", c);//合法就输出}return 0;} 

总结

时间复杂度:O(n)

没有什么含金量,下一题

C - Assembly via Minimums

题目翻译

Sasha 有一个包含 n 个整数的数组 a。他觉得无聊,于是对于所有的 i, ji < j),他写下了 a_ia_j 的最小值,得到了一个新的数组 b,其大小为 n⋅(n−1)/2

例如,如果 a = [2, 3, 5, 1],他会写下 [min(2, 3), min(2, 5), min(2, 1), min(3, 5), min(3, 1), min(5, 1)] = [2, 2, 1, 3, 1, 1]

然后,他随机打乱了数组 b 的所有元素。

不幸的是,他忘记了数组 a,你的任务是恢复一个可能的数组 a,使得可以从它得到数组 b

数组 a 的元素应处于 [−10^9, 10^9] 范围内。


输入

第一行包含一个整数 t1 ≤ t ≤ 200)——测试用例的数量。

每个测试用例的第一行包含一个整数 n2 ≤ n ≤ 10^3)——数组 a 的长度。

每个测试用例的第二行包含 n⋅(n−1)/2 个整数 b_1, b_2, …, b_{n⋅(n−1)/2}−10^9 ≤ b_i ≤ 10^9)——数组 b 的元素。

保证所有测试用例中 n 的总和不超过 10^3,并且对于每个测试用例中的数组 b,存在一个原始的数组 a


输出

对于每个测试用例,输出一个可能的长度为 n 的数组 a


示例

输入
1
4
2 2 1 3 1 1
输出
2 3 5 1

解释

在示例中,给定的 b=[2,2,1,3,1,1]b = [2, 2, 1, 3, 1, 1]b=[2,2,1,3,1,1],可以通过数组 a=[2,3,5,1]a = [2, 3, 5, 1]a=[2,3,5,1] 得到。

分析

由于只用给出一张情况就好,我们简化亿点点

  1. 既然他打乱了数组b的顺序,那我们就给他排序(从小到大)

  2. 可以略微思考一下:a数组最小的那个数在b数组里面至少出现了n-1次,而且b数组中最小的数在a中肯定也是最小的(可以反证)

  3. 那么我们是不是确定了a数组的一个数:b中的最小数也是a中的最小数

  4. 如(2)所说,至少会出现n-1次,那如果出现了更多次,那说明这个最小数不止出现了一次。由于是最小值,那在b数组里至少出现了n-1+n-2=2n-3次,以此类推。若最小值只出现了n-1次,那么下一个数就是次小值了。

  5. 由此可推出次小、次次小……次大、最大值。其中最大值可出现两次,因为自己跟自己比还是自己大

优化分析

分析中的第(4)点可以再优化一下。由于我们知道分析完最小值后的b数组中至少还有n-2个相同的最小值,且无论是否与最小值一致我们都需要将此数加入a数组,所以我们不用考虑这个数的值。

模型构建

采用单向指针扫描,向后推移指针的路径递减。详细内容见代码

代码及注释

#include<bits/stdc++.h>
using namespace std;const int M = 1e6;
int a[M], b[M];int main()
{int T; scanf("%d", &T);while(T--)//多组测试数据 {memset(a, 0, sizeof(a));memset(b, 0, sizeof(b)); int n, m;scanf("%d", &n); m = n*(n-1)/2;for(int i=0 ; i<m ; i++)scanf("%d", b+i);sort(b, b+m);int zz = 0;//指针,用于扫描b数组 for(int i=0 ; i<n ; i++){a[i] = b[zz];zz += n-i-1; }a[n-1] = b[m-1]; //最后一个值直接赋值for(int i=0 ; i<n ; i++)printf("%d ", a[i]);puts("");	}return 0;
}

总结

这题很难想,主要是把乱的数组有序化这点想明白就很简单。

D - Grade Allocation

题目翻译

有 ( n ) 名学生正在参加考试。考试的最高分为 ( m )。令 ( a_i ) 表示第 ( i ) 名学生的分数。你可以访问学校的数据库,该数据库存储了所有学生的成绩。

你可以修改每名学生的分数,但需要满足以下条件:

  1. 所有分数都是整数。
  2. 每个分数满足 ( 0 \leq a_i \leq m )。
  3. 班级的平均分数保持不变。

你是第 ( 1 ) 名学生,你希望最大化自己的分数。

请找到一个满足所有条件的最高可能分数,并将其分配给自己。


输入

每个测试包含多个测试用例。

第一行包含测试用例的数量 ( t )(( 1 \leq t \leq 200 ))。随后是每个测试用例的描述。

每个测试用例的第一行包含两个整数 ( n ) 和 ( m )(( 1 \leq n \leq 10^3 ),( 1 \leq m \leq 10^5 ))——分别是学生数量和最高可能分数。

每个测试用例的第二行包含 ( n ) 个整数 ( a_1, a_2, \dots, a_n )(( 0 \leq a_i \leq m ))——学生的分数。


输出

对于每个测试用例,输出一个整数——满足所有条件的情况下,你可以分配给自己的最高可能分数。


示例

输入
2
4 10
1 2 3 4
4 5
1 2 3 4
输出
10
5

解释

  • 在第一个测试用例中,( a = [1, 2, 3, 4] ),平均分为 ( 2.5 )。你可以将数组修改为 ( [10, 0, 0, 0] ),平均分仍为 ( 2.5 ),且所有条件都满足。
  • 在第二个测试用例中,( 0 \leq a_i \leq 5 )。你可以将数组修改为 ( [5, 1, 1, 3] )。你无法进一步增加 ( a_1 ),否则会违反条件 ( 0 \leq a_i \leq m )。

分析

任务

在保持平均分一致的情况下尽可能保证自己的(1号)的最高分,且不高于最高分

优化任务

均分一样 = 总分一样。总分一样,自己分越高,说明别人的分越低,最低就是0分。假设其余都是0分,那自己就是总分。注意,不要超过最高分。

代码及注释

#include<bits/stdc++.h>
using namespace std;typedef long long LL;int main()
{int T; scanf("%d", &T);while(T--){LL n, mx; scanf("%lld%lld", &n, &mx);LL sum = 0;for(int i=0 ; i<n ; i++){LL t; scanf("%lld", &t);sum += t;}printf("%lld\n", min(mx, sum));//不超过最高分的总分}return 0;} 

总结

时间复杂度:O(nm)

没有什么含金量,下一题

E - Power of Points

题目翻译

你被给定位于数轴上的 n 个整数坐标点 x 1 , x 2 , … , x n \ x_1, x_2, \dots, x_n  x1,x2,,xn

对于某个整数 s ,我们构造线段 [ s , x 1 ] , [ s , x 2 ] , … , [ s , x n ] \ [s, x_1], [s, x_2], \dots, [s, x_n]  [s,x1],[s,x2],,[s,xn] 。注意,如果 $\ x_i < s $,那么线段看起来会是 [ x i , s ] \ [x_i, s]  [xi,s]。线段 [ a , b ] \ [a, b]  [a,b] 覆盖所有整数点 a , a + 1 , a + 2 , … , b \ a, a+1, a+2, \dots, b  a,a+1,a+2,,b

我们定义点 p 的能量 f p \ f_p  fp 为与坐标 p \ p  p 相交的线段的数量。

你的任务是计算对于每个 s ∈ { x 1 , x 2 , … , x n } \ s \in \{x_1, x_2, \dots, x_n\}  s{x1,x2,,xn},即 s 取值为给定点的坐标时,所有整数点 p 从 1 到 109 的 fp 的总和。

例如,如果初始坐标为 ([1, 2, 5, 7, 1]),且我们选择 ( s = 5 ),则线段为:
[ 1 , 5 ] , [ 2 , 5 ] , [ 5 , 5 ] , [ 5 , 7 ] , [ 1 , 5 ] [1, 5], [2, 5], [5, 5], [5, 7], [1, 5] [1,5],[2,5],[5,5],[5,7],[1,5]

点的能量为:
f 1 = 2 , f 2 = 3 , f 3 = 3 , f 4 = 3 , f 5 = 5 , f 6 = 1 , f 7 = 1 , f 8 = 0 , … , f 1 0 9 = 0 f_1 = 2, f_2 = 3, f_3 = 3, f_4 = 3, f_5 = 5, f_6 = 1, f_7 = 1, f_8 = 0, \dots, f_{10^9} = 0 f1=2,f2=3,f3=3,f4=3,f5=5,f6=1,f7=1,f8=0,,f109=0
它们的总和为:
2 + 3 + 3 + 3 + 5 + 1 + 1 = 18 2 + 3 + 3 + 3 + 5 + 1 + 1 = 18 2+3+3+3+5+1+1=18

输入格式

  • 第一行包含一个整数 t ( 1 ≤ t ≤ 1 0 4 ) ( 1 \leq t \leq 10^4 ) (1t104),表示测试用例的数量。
  • 每个测试用例的第一行包含一个整数 n ( 1 ≤ n ≤ 2 ⋅ 1 0 5 ) ( 1 \leq n \leq 2 \cdot 10^5 ) (1n2105),表示点的数量。
  • 第二行包含 n 个整数 x 1 , x 2 , … , x n \ x_1, x_2, \dots, x_n  x1,x2,,xn ( 1 ≤ x i ≤ 1 0 9 ) ( 1 \leq x_i \leq 10^9 ) (1xi109),表示点的坐标。
  • 保证所有测试用例的 n 的总和不超过 2 ⋅ 1 0 5 \ 2 \cdot 10^5  2105

输出格式

对于每个测试用例,输出 n 个整数,其中第 i 个整数表示当 s = x i \ s = x_i  s=xi 时,所有点的能量 f p \ f_p  fp 的总和。


示例输入与输出

示例输入 :
3
3
1 4 3
5
1 2 5 7 1
4
1 10 100 1000
示例输出 :
8 7 6
16 15 18 24 16
1111 1093 1093 2893

代码(未完成)

#include<bits/stdc++.h>
using namespace std;const int M = 10000;
struct P{int place;int value;int front_ans, after_ans;int front_line, after_line;
}point[M];
int n, cnt[M];bool cmp1(P a, P b){return a.value <= b.value;
}int main()
{int T; scanf("%d", &T);while(T--){memset(point, 0, sizeof(point));memst(cnt, 0, sizeof(cnt));scanf("%d", &n);for(int i=0 ; i<n ; i++){scanf("%d", &point[i].value);cnt[point[i].value]++;if(point[i].value!=point[0].value)point[0].after_ans += point[i].value_ans, point[0].after_line++;point[i].place = i;}sort(point, point+n, cmp1); for(int i=0 ; i<n ; ){int t=i, cnt=0;while(point[i].value==point[t].value)t++, cnt++; P x = &point[i], y = &point[t];int dv = y.value-x.value;y.front_ans = x.front_ans+x.front_line*cnt+(y.value-x.value)*cnt;y.front_line = x.front_line+cnt;
//			y.after_ans = x.after_ans-x.after_line*cnti = t;} }return 0;} 

F - Binary Imbalance

问题翻译

给定一个仅由字符 '0' 和/或 '1' 组成的字符串 s

在一次操作中,你可以选择一个位置 i(从 1|s|−1,其中 |s| 是当前字符串的长度)。然后在 s 的第 i 和第 i+1 个字符之间插入一个字符。如果 s_i = s_{i+1},则插入 '1';如果 s_i ≠ s_{i+1},则插入 '0'

问:是否可以通过任意次数的操作(包括不操作),使得字符串中 '0' 的数量严格大于 '1' 的数量?


输入格式

第一行为一个整数 t1 ≤ t ≤ 100),表示测试用例的数量。

对于每个测试用例:

  1. 第一行为一个整数 n1 ≤ n ≤ 100),表示字符串的长度。
  2. 第二行为一个长度为 n 的字符串 s,仅由字符 '0' 和/或 '1' 组成。

输出格式

对于每个测试用例,如果可以通过操作使字符串中 '0' 的数量严格大于 '1' 的数量,则输出 "YES";否则输出 "NO"


示例

输入
3
2
00
2
11
2
10
输出
YES
NO
YES

示例解释

  1. 第一个测试用例:字符串 "00"'0' 的数量已经大于 '1' 的数量,因此输出 "YES"
  2. 第二个测试用例:字符串 "11" 无法通过操作插入任何 '0',因此输出 "NO"
  3. 第三个测试用例:选择 i=1,在 '1''0' 之间插入一个 '0',得到字符串 "100",其中 '0' 的数量为 2,'1' 的数量为 1,因此输出 "YES"

分析

由于期望0多一些,那么我们不加1

由于可以无限次加,那么只要有一位能加0,那必然会存在有限次操作使最终的0多于1

原数组若原本就0多,那就不用管了

代码以及注释

#include<bits/stdc++.h>
using namespace std;const int M = 1000;
char c[M];int main()
{int T; scanf("%d", &T);while(T--){bool flag = false;//默认不行int cnt_0=0, cnt_1=0, n;memset(c, 0, sizeof(c));scanf("%d%s", &n, c);for(int i=0 ; i<n ; i++){int a = c[i]-'0';if(a) cnt_1++;else cnt_0++;if(i && c[i]!=c[i-1])//找到了等插入0的位置flag = true;}if(cnt_0>cnt_1)	flag = true;//本来就符合if(flag) puts("YES");else puts("NO");}return 0;
} 

G - Lucky Chains

题目翻译

我们称一对正整数 (x, y)幸运的,当且仅当它们的最大公约数等于 1,即 gcd(x, y) = 1

我们定义由 (x, y) 诱导的为一个序列,其中包含以下对:(x, y), (x+1, y+1), (x+2, y+2), …, (x+k, y+k),其中 k ≥ 0 为整数。该链的长度为链中元素的数量,即 (k+1)

如果该链中的所有对都是幸运的,那么我们称这条链为幸运链

给定 n 对数 (x_i, y_i),请为每对计算由其诱导的最长幸运链的长度。注意,如果 (x_i, y_i) 本身不是幸运的,则链的长度为 0


输入格式

第一行为一个整数 n1 ≤ n ≤ 10^6),表示对数。

接下来的 n 行,每行包含两个整数 x_iy_i1 ≤ x_i < y_i ≤ 10^7),表示第 i 对。


输出格式

输出 n 个整数,其中第 i 个整数表示由 (x_i, y_i) 诱导的最长幸运链的长度。如果该链可以无限长,则输出 -1


示例

输入
4
5 15
13 37
8 9
10009 20000
输出
0
1
-1
79

示例解释

  1. 第一个测试用例:gcd(5, 15) = 5 > 1,因此它本身不是幸运的,幸运链的长度为 0
  2. 第二个测试用例:gcd(14, 38) = 2,因此幸运链仅包含 (13, 37),长度为 1
  3. 第三个测试用例:gcd(8+k, 9+k) = 1 对所有 k ≥ 0 成立,因此幸运链可以无限长,输出 -1
  4. 第四个测试用例:最长幸运链的长度为 79

约束条件

  • 输入的对数 n 最多为 106
  • 每对 (x, y) 满足 1 ≤ x < y ≤ 107

分析

问题分析

我们需要为每对 (x, y) 计算由其诱导的最长幸运链的长度。幸运链的定义是链中的所有对 (x+k, y+k) 都必须满足 gcd(x+k, y+k) = 1。如果链可以无限延伸,则输出 -1;否则输出链的长度。


关键观察

  1. 链的性质
    链的形式为 (x+k, y+k),其中 k0 开始递增。我们可以将链中的任意对表示为 (x+k, y+k)

  2. 最大公约数的性质
    对于链中的每个对,有:

    gcd ⁡ ⁡ ( x + k , y + k ) = g c d ⁡ ( x + k , ( y + k ) − ( x + k ) ) = g c d ⁡ ( x + k , y − x ) gcd ⁡ ( x + k , y + k ) = gcd ⁡ ( x + k , ( y + k ) − ( x + k ) ) = gcd ⁡ ( x + k , y − x ) g c d ( x + k , y + k ) = g c d ( x + k , ( y + k ) − ( x + k ) ) = g c d ( x + k , y − x ) \gcd⁡(x+k,y+k)=gcd⁡(x+k,(y+k)−(x+k))=gcd⁡(x+k,y−x)\gcd(x+k, y+k) = \gcd(x+k, (y+k) - (x+k)) = \gcd(x+k, y - x)gcd(x+k,y+k)=gcd(x+k,(y+k)−(x+k))=gcd(x+k,y−x) gcd(x+k,y+k)=gcd(x+k,(y+k)(x+k))=gcd(x+k,yx)gcd(x+k,y+k)=gcd(x+k,(y+k)(x+k))=gcd(x+k,yx)gcd(x+k,y+k)=gcd(x+k,(y+k)(x+k))=gcd(x+k,yx)

    因此,gcd(x+k, y+k) 的值取决于 gcd(x+k, y - x)

  3. 问题转化
    我们需要找到最大的 k,使得对于所有 0 ≤ i ≤ k,都有 gcd(x+i, y - x) = 1。如果对于所有 k ≥ 0,都有 gcd(x+k, y - x) = 1,则链可以无限延伸,输出 -1

  4. 终止条件
    如果 gcd(x+k, y - x) > 1,则链在第 k 步终止,链的长度为 k


算法思路

  1. 特判
    如果 gcd(x, y) > 1,则链的长度为 0,因为第一个对本身不满足条件。
  2. 计算 d = y - x
    计算差值 d = y - x,因为 gcd(x+k, y+k) 的值取决于 gcd(x+k, d)
  3. 检查 gcd(x+k, d)
    • 如果 d = 1,则对于任意 kgcd(x+k, 1) = 1,因此链可以无限延伸,输出 -1
    • 否则,我们需要找到最小的 k,使得 gcd(x+k, d) > 1。如果找不到这样的 k,则链可以无限延伸,输出 -1;否则输出 k
  4. 查找最小的 k
    我们需要找到最小的 k,使得 gcd(x+k, d) > 1。这可以转化为找到使 x+kd 有非 1 公约数的 k
    • 找到 d 的所有质因数。
    • 对于每个质因数 p,计算最小的 k 使得 p 整除 x+k,即 k ≡ -x \mod p
    • 取所有质因数对应的 k 的最小值。

算法步骤

  1. 对于每对 (x, y),计算 d = y - x
  2. 如果 d = 1,输出 -1
  3. 否则,找到 d 的所有质因数。
  4. 对于每个质因数 p,计算最小的 k 使得 p 整除 x+k,即 k = (p - x % p) % p
  5. 取所有质因数对应的 k 的最小值。如果存在这样的 k,输出 k;否则输出 -1

时间复杂度分析

  1. 质因数分解
    质因数分解的时间复杂度为 O(sqrt(d)),其中 d = y - x
  2. 总复杂度
    对于 n 个测试用例,总复杂度为 O(n * sqrt(d_max)),在数据范围内可以接受。

代码及注释

#include<bits/stdc++.h>
using namespace std;const int M = 10000000; 
int zs[M/10], cnt_zs; 
bool flag[M+1];// 筛质数函数
void szs(){for (int i=2; i<=M; i++) {if (!flag[i]) {zs[cnt_zs++] = i;for (int j=2*i; j<=M; j+=i){flag[j] = true;}}}
}int gcd(int a, int b){return b == 0 ? a : gcd(b, a % b);
}int main() {szs();int n;scanf("%d", &n);while (n--) {int x, y;scanf("%d%d", &x, &y);int d = y - x;// 特判:d = 1,链可以无限延伸if (d == 1) {puts("-1");continue;}// 特判:gcd(x, y) != 1,链长度为 0if (gcd(x, y) != 1) {puts("0");continue;}// 初始化结果为最大值int res = M + 1;// 对 d 进行质因数分解for (int i=0; i<cnt_zs && zs[i]*zs[i]<=d; i++) {if (d % zs[i] == 0) {res = min(res, (zs[i]-(x%zs[i]))%zs[i]);while(d % zs[i] == 0) d /= zs[i];}}// 如果 d 本身是质数if(d>1) {res = min(res, (d-(x%d))%d);}printf("%d\n", res==M+1 ? -1 : res);}return 0;
}

相关文章:

北京交通大学第三届C语言积分赛

作者有言在先&#xff1a; 题解的作用是交流思路&#xff0c;不是抄作业的。可以把重点放在思路分析上而不是代码上&#xff0c;毕竟每个人的代码风格是不一样的&#xff0c;看别人的代码就跟做程序填空题一样。先看明白思路再看代码。 还有就是&#xff0c;deepseek真的很好用…...

架构设计之自定义延迟双删缓存注解(下)

架构设计之自定义延迟双删缓存注解(下) 小薛博客官方架构设计之自定义延迟双删缓存注解(下)地址 为了保证Cache和ClearAndReloadCache的灵活性&#xff0c;特意加入EL表达式解析 1、Cache package com.xx.cache;import java.lang.annotation.*; import java.util.concurren…...

SingleMod

SingleMod SingleMod是一种深度学习模型,专为利用纳米孔直接RNA测序(DRS)数据在单RNA分子中精确检测m6A修饰而设计。该模型通过深度多实例回归框架进行训练,能够充分利用广泛的甲基化率标签。SingleMod是一个通用框架,可轻松适配其他核酸修饰的检测模型训练。 注意: Si…...

SQL-查询漏洞

一、查询注入的数据类型 //list.php<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatiable" content"IEedge"><meta name"viewport" content&…...

Maven 多模块项目(如微服务架构)中,父 POM(最外层) 和 子模块 POM(具体业务模块)的区别和联系

文章目录 **1. 父 POM 的核心职责****1.1 依赖管理 (dependencyManagement)****1.2 插件管理 (pluginManagement)****1.3 其他公共配置** **2. 子模块 POM 的核心职责****2.1 依赖声明 (dependencies)****2.2 插件启用与覆盖 (plugins)** **3. 核心对比表****4. 使用场景示例**…...

【AIGC】图片变视频 - SD ComfyUI视频生成

效果图 完整过程 SD ComfyUI 下载 下载 https://pan.quark.cn/s/64b808baa960 解压密码&#xff1a;bilibili-秋葉aaaki 完整 https://www.bilibili.com/video/BV1Ew411776J/ SD ComfyUI 安装 1.解压 2.将controlnet内部文件复制到 ComfyUI-aki-v1.6\ComfyUI\models\control…...

思考我的未来职业

李升伟 编译 关于我 我是一名专注于后端开发的软件工程师&#xff0c;拥有十年专业编程经验。从学生时代起&#xff0c;编程就是我的热情所在&#xff0c;并一直保持着这个长期爱好。此外&#xff0c;我也热爱动漫和电影。 然而过去几年&#xff0c;婚姻、家庭责任和育儿让生…...

StarRocks数据导入

文章目录 StarRocks数据导入Broker LoadETL 集群导数非 ETL 集群导数Broker Load 任务查看BrokerLoad⼤数据量导⼊优化参数推荐配置BrokerLoad 排查思路 Insert IntoInsert Into大数据量导入优化参数 Stream LoadStreamLoad⼤数据量导⼊优化参数推荐配置Stream Load 排查思路 R…...

mmdetection安装

链接: link...

光学像差的类型与消除方法

### **光学像差的类型、理解与消除方法** 光学像差是指实际光学系统成像时&#xff0c;由于透镜或反射镜的非理想特性导致的光线偏离理想路径&#xff0c;从而影响成像质量的现象。像差可分为**单色像差**&#xff08;与波长无关&#xff09;和**色差**&#xff08;与波长相关…...

Manus AI 破局多语言手写识别,解锁智能新天地

Manus AI 破局多语言手写识别&#xff0c;解锁智能新天地 前言 在人工智能技术不断渗透各行各业的背景下&#xff0c;手写识别领域长期面临多语言适配难、复杂场景泛化能力弱等挑战。ManusAI凭借其创新的算法架构和多模态融合技术&#xff0c;成功突破传统OCR&#xff08;光学…...

文字颜色的渐变(svg实现)

一 上下渐变&#xff08;有底部阴影&#xff09; 效果如图&#xff1a; svg代码如下&#xff1a; <svg width"300" height"100" xmlns"http://www.w3.org/2000/svg"><defs><linearGradient id"textGradient" x1"…...

Java-设计模式

Java-设计模式 ⓪设计模式基础 ❶设计模式分类 创建型模式 用于描述对象实例化&#xff08;创建对象&#xff09;的模式&#xff0c;即用于解耦对象的实例化过程 GoF&#xff08;四人组&#xff09;书中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 …...

“我是GM”之NAS搭建Luanti游戏服务器,开启沙盒游戏新体验

“我是GM”之NAS搭建Luanti游戏服务器&#xff0c;开启沙盒游戏新体验 哈喽小伙伴们好&#xff0c;我是Stark-C~ 曾几何时&#xff0c;哪怕是现在&#xff0c;估计依然有很多小伙伴沉迷于开放性和自由度极高的《我的世界》这种沙盒游戏吧~。 我个人到现在手机上还有这款游戏…...

K8S学习之基础五十:k8s中pod时区问题并通过kibana查看日志

k8s中pod默认时区不是中国的&#xff0c;挂载一个时区可以解决 vi pod.yaml apiVersion: v1 kind: Pod metadata:name: counter spec:containers:- name: countimage: 172.16.80.140/busybox/busybox:latestimagePullPolicy: IfNotPresentargs: [/bin/sh,-c,i0;while true;do …...

光电效应及普朗克常数的测定数据处理 Python实现

内容仅供参考&#xff0c;如有错误&#xff0c;欢迎指正&#xff0c;如有疑问&#xff0c;欢迎交流。 因为我不会Excel所以只能用Python来处理 祝大家早日摆脱物理实验的苦海 用到的一些方法 PCHIP &#xff08;分段三次埃尔米特插值多项式&#xff09; 因为实验时记录的数…...

hyperf中关于时间的设定

下面我来总结这三者的用法和它们之间的关系&#xff1a; 1. protected ?string $dateFormat U; 作用&#xff1a; 定义数据库日期字段的存储格式‘U’ 表示使用 Unix 时间戳格式&#xff08;秒级&#xff0c;10位数字&#xff09; 影响范围&#xff1a; 决定了模型从数据…...

编程实现自我指涉(self-reference)

从计算机的组成原理出发&#xff0c;编程实现自我指涉&#xff08;self-reference&#xff09;本质上是通过代码操纵代码&#xff0c;形成逻辑上的闭环。这种能力不仅是编程语言设计中的一个奇妙现象&#xff0c;更是计算理论、计算机架构、乃至哲学层面的一种深刻映射。让我们…...

数据类设计_图片类设计_矩阵图类型和像素图类型设计的补充

前言 以矩阵图类型和像素图类型作为图像类数据的基础,但在使用过程中有个问题:矩阵图形和像素图形的尺寸---长和高没有表现出来,本贴对此做出分析. 引入 原帖数据类设计_图片类设计之7_矩阵图形类设计更新_实战之页面简单设计&#xff08;前端架构&#xff09;-CSDN博客里有对…...

php写入\查询influxdb数据

namespace app\index\controller;use InfluxDB2\Client; use InfluxDB2\Model\WritePrecision; use InfluxDB2\Point;class Demo {/*** 显示资源列表** return \think\Response*/public function index(){$token 你的TOKEN;$org zzlichi;$bucket initdb;$client new Client…...

新手村:逻辑回归-理解02:逻辑回归中的伯努利分布

新手村&#xff1a;逻辑回归-理解02&#xff1a;逻辑回归中的伯努利分布 伯努利分布在逻辑回归中的潜在含义及其与后续推导的因果关系 1. 伯努利分布作为逻辑回归的理论基础 ⭐️ 逻辑回归的核心目标是: 建模二分类问题中 目标变量 y y y 的概率分布。 伯努利分布&#xff08…...

Python正则表达式(一)

目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式&#xff1a; 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…...

JavaScript基础-事件委托(代理、委派)

在Web开发中&#xff0c;处理用户交互时经常需要监听DOM元素上的事件。然而&#xff0c;当页面上存在大量的动态生成的元素时&#xff0c;直接给每个元素绑定事件处理器可能会导致性能问题和代码管理复杂度增加。这时&#xff0c;事件委托提供了一种更加高效且易于维护的解决方…...

《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型

《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型理解重叠 I/O 模型重叠 I/O本章讨论的重叠 I/O 的重点不在于 I/O 创建重叠 I/O 套接字执行重叠 I/O 的 WSASend 函数进行重叠 I/O 的 WSA…...

【区块链安全 | 第二篇】区块链概念详解

文章目录 概述1. 区块链类型2 区块链五层架构3 账本模型4. 节点&#xff08;Node&#xff09;5. 区块&#xff08;Block&#xff09;6. 区块链&#xff08;Blockchain&#xff09;7. 区块链工作流程 核心技术1. 共识机制2. 智能合约 主要组件1. 交易&#xff08;Transaction&am…...

Android实践开发制作小猴子摘桃小游戏

Android实践制作小猴子摘桃小游戏 实践素材项目源文件获取&#xff1a;Android可以存在版本差异项目如果不能正确运行&#xff0c;可以使用里面的素材自己构建项目Android实践制作小猴子摘桃小游戏Android实践制作小猴子摘桃小游戏https://mp.weixin.qq.com/s/jNU_hVfj9xklsil…...

“11.9元“引发的系统雪崩:Spring Boot中BigDecimal反序列化异常全链路狙击战 ✨

&#x1f4a5; "11.9元"引发的系统雪崩&#xff1a;Spring Boot中BigDecimal反序列化异常全链路狙击战 &#x1f3af; &#x1f50d; 用 Mermaid原生防御体系图 #mermaid-svg-XZtcYBnmHrF9bFjc {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…...

【C++】回调函数和回调对象

文章目录 回调可调用对象函数指针作回调函数对象作回调函数对象的使用std::function【C11】作回调使用 【C11】Lambda表达式作回调【C11】bind对象作回调std::bind的使用作回调使用 回调 当发生某种事件时需要调用或触发另一个事件即为回调&#xff0c;回调的核心即为将可调用…...

电子产品可靠性预计怎么做?

目录 1、电子产品可靠性预计的目的 2、电子产品可靠性预计的常用方法 2.1、基于统计数据的预计方法 2.2、物理模型预计方法 2.3、加速寿命试验 2.4、基于仿真的预计方法 3、电子产品可靠性预计的步骤 3.1、定义可靠性指标 3.2、收集数据 3.3、建立模型 3.4、进行仿真…...

Ubuntu20.0.4创建ssh key以及repo命令的使用

创建ssh key ssh-keygen //一路回车&#xff0c;不用输入任何东西cat ~/.ssh/id_rsa.pub 配置git config git config --global user.name xxx // 设置git用户名git config --global user.email xxx.com.cn //设置git 邮箱git config --list// remove the git config// rm -fr …...

Java动态代理的使用和安全问题

前言&#xff1a; java的动态代理是指进行明确的分工的操作&#xff08;多接口 比如我是酒店的老板 有人找我合作 需要先经过前台 我的助理 而不是直接找我&#xff09; 序列化 &#xff1a;为什么序列化 序列化的对象是一个类 我们也叫对象 class一堆东西里面有很多函…...

Linux云计算SRE-第二十一周

构建单节点prometheus&#xff0c;部署node exporter和mongo exporter。构建kibana大盘。包含主机PU使用率&#xff0c;主机MEM使用率&#xff0c;主机网络包速度。mongo db大盘&#xff0c;包含节点在线状态&#xff0c;读操作延迟等 一、实验环境准备 - 节点信息&#xff1…...

《Python实战进阶》第33集:PyTorch 入门-动态计算图的优势

第33集&#xff1a;PyTorch 入门-动态计算图的优势 摘要 PyTorch 是一个灵活且强大的深度学习框架&#xff0c;其核心特性是动态计算图机制。本集将带您探索 PyTorch 的张量操作、自动求导系统以及动态计算图的特点与优势&#xff0c;并通过实战案例演示如何使用 PyTorch 实现…...

python dict转换成json格式

一开始你变成字典格式 data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] import json data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] data2 json.dumps(data) print(data2)json.dumps(data) 是将数组json化。 json格式化输出 data2 json.dumps({a: Runoob, b: 7…...

美亚科技业绩波动明显:现金流为负,四起未决诉讼涉金额1700万

《港湾商业观察》施子夫 近期&#xff0c;广东美亚旅游科技集团股份有限公司&#xff08;以下简称&#xff0c;美亚科技&#xff09;披露第二轮审核问询函的回复。从两轮问询函监管层提出的问题来看&#xff0c;有关美亚科技业绩增长的合理性、募投项目的必要性及合理性、经营…...

Java面试总结+算法

目录 Java 中 和 equals 的区别是什么&#xff1f; 什么是类加载器&#xff0c;Java 中有哪些类加载器&#xff1f;它们的职责分别是什么&#xff1f; Redis 有哪些数据结构&#xff1f;它们分别适用于哪些场景&#xff1f; 什么是索引&#xff1f;MySQL 有哪些常见的索引类…...

深度优先搜索(DFS)在排列组合问题中的应用详解:C++实现与优化

一、排列问题&#xff08;Permutations&#xff09; 目标&#xff1a;生成所有可能的排列&#xff08;元素顺序不同视为不同结果&#xff09;。 示例&#xff1a;输入 [1,2,3]&#xff0c;输出所有长度为3的排列&#xff0c;共6种。 C实现代码 #include <iostream> #i…...

GeoChat : Grounded Large Vision-Language Model for Remote Sensing论文精读

GeoChat : Grounded Large Vision-Language Model for Remote Sensing 是一个针对遥感场景的llm&#xff0c;提供支持多任务对话&#xff08;对高分辨率遥感图像&#xff09;。也造了个数据集。 一些思考&#xff1a; 文中提到的局限性&#xff1a;小物体和多框预测较难。小物…...

Postman使用02、断点、fiddler弱网测试

脚本操作 一、脚本导出 1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 1.选择文件 2.点击导入 3.导入的接口 三.多接口运行 1.集合右键&#xff0c;点击run &#xff0c;运行多个接口 2.编辑环境&#xff0c;集合&#xff0c;执行次数等 3.运行多个接口 四.运行…...

深入解析 C++20 中的 std::bind_front:高效函数绑定与参数前置

文章目录 1. 什么是 std::bind_front&#xff1f;2. 使用 std::bind_front2.1 基本用法2.2 绑定多个参数 3. 优势与特点3.1 简化代码3.2 支持可调用对象3.3 支持完美转发 4. 实际应用场景4.1 事件处理4.2 算法通用化4.3 成员函数调用 5. 总结 在现代 C 编程中&#xff0c;函数绑…...

Opencv计算机视觉编程攻略-第三节 图像颜色处理

第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较&#xff0c;其中注意BGR颜色空间不连续&#xff0c;不利于颜色提取和区分&#xff0c;转换到Lab空间&#xff1a; int getColorDistance(const cv::Vec3b& c…...

第十七章:Future Directions_《C++ Templates》notes

Future Directions 核心重难点&#xff1a;示例代码&#xff1a; 设计题多选题答案设计题详解 核心重难点&#xff1a; 泛型非类型模板参数 允许任意类型作为非类型模板参数&#xff08;如template<typename T, auto N>&#xff09;需解决类型推导和链接问题 编译期控制…...

ComfyUI-PSD-Replace: 海报与壁纸批量生成

ComfyUI-PSD-Replace: 海报与壁纸批量生成 &#x1f680; 插件介绍 ComfyUI-PSD-Replace 是一款强大的图像批量处理插件&#xff0c;专为设计师和创意工作者打造。无论你是想快速生成多款海报、定制壁纸&#xff0c;还是批量更新设计模板&#xff0c;本插件都能帮你轻松实现&a…...

图解预训练模型 ELMo 和 BERT

一、ELMo 二、BERT 以上笔记参考自b站up主 自然卷小蛮&#xff08;自然卷小蛮的个人空间-自然卷小蛮个人主页-哔哩哔哩视频&#xff09;&#xff0c;感兴趣的可以去深入了解。...

YoloV8训练和平精英人物检测模型

概述 和平精英人物检测&#xff0c;可以识别游戏中所有人物角色&#xff0c;并通过绘制框将人物选中&#xff0c;训练的模型仅仅具有识别功能&#xff0c;可以识别游戏中的视频、图片等文件&#xff0c;搭配Autox.js可以推理&#xff0c;实现实时绘制&#xff0c;但是对手机性…...

基于物联网的智能蔬菜仓库设计(论文+源码)

1系统功能分析 由于蔬菜仓库内部环境直接影响到内部货物的正常存储工作&#xff0c;因此对蔬菜仓库内部环境进行智能化的监控具有重要意义。本次基于物联网的智能蔬菜仓库设计&#xff0c;系统实现的功能如下&#xff1a; &#xff08;1&#xff09;对蔬菜仓库内部进行温度检测…...

Java 字符流全解析:核心类实战指南

一、FileReader 与 FileWriter&#xff1a;文本文件基础操作 功能&#xff1a;直接基于字符处理文本文件&#xff0c;自动完成字节到字符的解码&#xff08;默认使用系统编码&#xff09;。 适用场景&#xff1a;读写简单的文本文件&#xff08;如 .txt、.csv&#xff09;。 …...

SQL Server 2022 安装问题

一、安装与配置问题 1. SQL Server 2022 安装失败怎么办&#xff1f; 常见原因&#xff1a; 硬件或操作系统不满足最低要求&#xff08;如内存、磁盘空间不足&#xff09;。未关闭防火墙或杀毒软件。之前版本的 SQL Server 残留文件未清理。 解决方案&#xff1a; 确保硬件配…...

Vue3 实现pdf预览

1.使用到的插件 vue3-pdf-app 以及预览效果 2.下载依赖 // 可以使用npm 以及pnpm // 下载版本1.0.3 pnpm install vue3-pdf-app^1.0.3 3.封装pdfModel组件复用 <template><VuePdfApp :page-scale"pageScale" :theme"theme" :style"width: …...

python网络爬虫开发实战之网页数据的解析提取

目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…...