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

2024zzuacm新生选拔赛第一场

2024zzuacm新生选拔赛第一场https://ac.nowcoder.com/acm/contest/92409

python代码源自我有异议症QAQ

A - 降智视频

题意

起初有n个数都在丁丁手中,进行如下操作k次:

  • 豆豆从丁丁手中拿走标号为奇数的数。
  • 对丁丁的其他的数进行重新标号。

问进行k次之后,豆豆和丁丁各自有多少个不同的数

思路

思路一:每次豆豆都会从丁丁手中拿走第奇数个数,如第 1,3,5,7,..等。

之后对丁丁手中的数重新标号,可以发现新的标号恰好为原先标号的 1 2 \frac{1}{2} 21 。 如4 -> 2 , 8 -> 4, 2 -> 1

于是我们进行分析可以发现, 对于第 i i i次操作,豆豆会从丁丁手中拿走除以 2 i − 1 2^{i-1} 2i1 是奇数的数。那么留下的数的下标 x x x都会满足 x 2 i − 1 m o d 2 = 0 \frac{x}{2^{i-1}} \ mod\ 2 = 0 2i1x mod 2=0 , 即所有的数的下标都是 2 i 2^i 2i的倍数,那么进行k次操作后,丁丁会留下下标为 2 k , 2 ∗ 2 k , 3 ∗ 2 k , . . . 2^k, 2 * 2^k,3 *2^k,... 2k,22k,32k,...的数。

我们便可以直接获取豆豆和丁丁最终的数,然后对其进行计数,就可以得出各自有多少种类的数。时间复杂度 O ( n ) O(n) O(n)

思路二:可以发现,最多 l o g 2 n log_2n log2n次操作豆豆就可以把丁丁的数全部拿完,那么我们可以直接模拟这个拿数的过程 , 时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)

代码

C思路一

#include<stdio.h>
int vis1[1000005];
int vis2[1000005];
int main(){int n,k;scanf("%d %d",&n,&k);if(k > 20) k = 20;int mod = (1<<k);for(int i= 1;i<=n;i++){int x;scanf("%d",&x);if(i%mod==0){vis1[x] = 1;}else{vis2[x] = 1;}}int cnt1 = 0;int cnt2 = 0;for(int i = 1;i<=n;i++){if(vis1[i]) cnt1++;if(vis2[i]) cnt2++;}printf("%d %d",cnt2,cnt1);return 0;
}

C思路二

#include<stdio.h>
int A[1000005];
int cntA;
int B[1000005];
int cntT;
int cntB;
int vis1[1000005];
int vis2[1000005];
int main(){int n,k;scanf("%d %d",&n,&k);cntA = n;for(int i =1;i<=n;i++){scanf("%d",&A[i]);}while(k--){int new_cntA = 0;for(int i = 1;i<=cntA;i++){if(i%2 == 1) B[++cntB] = A[i];else A[++new_cntA] = A[i];}cntA = new_cntA;if(cntA == 0) break;}for(int i = 1;i<=cntA;i++){vis1[A[i]] = 1; }for(int i = 1;i<=cntB;i++){vis2[B[i]] = 1; }int cnt1=0,cnt2=0;for(int i = 1;i<=n;i++){if(vis1[i]) cnt1++;if(vis2[i]) cnt2++;}printf("%d %d",cnt2,cnt1);return 0;
}

python

n,k = [int(i) for i in input().split()]
c = [int(i) for i in input().split()]if k>=20 :s = set()for i in range(n):s.add(c[i])print(len(s),0)
else :s1 = set()s2 = set()for i in range(n):if((i+1)%pow(2,k)==0):s1.add(c[i])else :s2.add(c[i])print(len(s2),len(s1))

B - 还在分糖果!

题意

对于所有的正整数,取走包含7的数之后, 问第n个数是多少。

思路

如果大家没有头绪,不妨将取走7 替换为取走9 , 这样我们观察数据,发现变成了1,2,3,4,5,6,7,8,10 , 从原先的“十进制” 变为了“九进制” , 于是发现本题其实就是 十进制转换为九进制 的进制转换。只不过本题删去的不是9,而是7 ,我们把转换后的九进制中的7替换为8 , 8替换为9即可

代码

C

#include<stdio.h>
char ans[1000005];
int len = 0;
void solve(){long long n;scanf("%lld",&n);len = 0;while(n){int x = n%9;if(x >= 7) x ++;ans[++len] = char(x + '0');n /= 9;}for(int i = len;i>=1;i--){putchar(ans[i]);}puts("");
}
signed main(){int T;scanf("%d",&T);while(T--){solve();}return 0;
}

python

T = int(input())
for i in range(T):n = int(input())ans = ''while n>0:t = n%9n //= 9if t>=7:t += 1ans += chr(ord('0')+t)print(ans[::-1])

C - 数论难题

题意

给出一个数 N N N, 找到一个数 x x x, 满足 0 ≤ x < 998244353 0 \le x < 998244353 0x<998244353 , 并且 N − x N - x Nx 998244353 998244353 998244353的倍数。

思路

本题题意等价于 ,求 N m o d 998244353 N \ mod \ 998244353 N mod 998244353 的结果,(其中 m o d mod mod表示取余运算) ,直接输出即可。

注意负数取余会得到负数,所以必须在取余数的结果上加上 998244353 998244353 998244353

代码

C

#include<stdio.h>
int main(){long long n;scanf("%lld",&n);int mod = 998244353;printf("%lld",(n%mod + mod)%mod);return 0;
}

python

n = int(input())
mod = 998244353
print(n%mod)

D - 数论简单题

题意

给你两个区间[a,b] ,[c,d] ,从中分别选择一个数 x , y x,y x,y , 使得 x × y x \times y x×y 最大

思路

本题中可能会出现两个负数取值的情况,但如果想要得到最大值,那么无非就是

  1. 两个正数相乘
  2. 两个负数相乘

于是我们输出 a × c a \times c a×c b × d b \times d b×d 两个答案中的最大值即可。

代码

C

#include<stdio.h>
int main(){long long a,b,c,d;scanf("%lld%lld%lld%lld",&a,&b,&c,&d);if(a * c < b * d){printf("%lld\n",b * d);}else{printf("%lld\n",a * c);}return 0;
}

python

a,b,c,d = [int(i) for i in input().split()]
print(max(max(a*c,a*d),max(b*d,b*c)))

E - 最大数

题意

给定两个区间[L1,R1] , [L2,R2] , 从中各自选择一个数 x , y x,y x,y ,使得 x + y x+y x+y 中的最大数位 尽可能大。

思路

首先可以得知,对于一个数位,他最大为9。那么我们从 L 1 + L 2 L1+L2 L1+L2 开始枚举最多10个数就可以找到最适合的 x + y x+y x+y

于是我们计算 f ( L 1 + L 2 ) , f ( L 1 + L 2 + 1 ) , . . . , f ( L 1 + L 2 + 9 ) f(L1+L2),f(L1+L2+1),...,f(L1+L2+9) f(L1+L2),f(L1+L2+1),...,f(L1+L2+9) ,取其中的最大值即可。

代码

C

#include<stdio.h>
int f(int x){int ans = 0;while(x){int t = x % 10;ans = (ans > t) ? ans : t; x/=10;}return ans;
}
void solve(){int l1,r1,l2,r2;scanf("%d%d%d%d",&l1,&r1,&l2,&r2);int l = l1+l2;int r = r1+r2;int ans = 0;for(int i = l;i<=r;i++){int fi = f(i);ans = ans > fi ? ans : fi;if(ans == 9) break;}printf("%d\n",ans);
}
int main(){int T = 1;scanf("%d",&T);while(T--){solve();}return 0;
}

python

T = int(input())def check(x):ans = 0while(x>0):ans = max(ans,x%10)x //= 10return ansfor i in range(T):la,ra,lb,rb = [int(i) for i in input().split()]if(ra-la>9 or rb-lb>9):print(9)else :ans = 0for i in range(la,ra+1):for j in range(lb,rb+1):ans = max(ans,check(i+j))print(ans)

F - 个位数口算

题意

输出 3 n 3^n 3n 的个位数。

思路

找规律可以发现,对于 3 1 , 3 2 , 3 3 , 3 4 , . . . 3 ^ 1, 3^2 ,3^3,3^4,... 31,32,33,34,... 他们的个位数为 3 , 9 , 7 , 1 , 3 , 9 , 7 , . . . 3,9,7,1,3,9,7,... 3,9,7,1,3,9,7,...[3,9,7,1] 循环

于是我们对 n n n取余 4 4 4就可以得到结果。

另:如果你没有找到规律,也可以用快速幂直接计算出 3 n 3^n 3n 10 10 10取余的结果

代码

C

#include<stdio.h>
int main(){long long n;scanf("%lld",&n);putchar("3971"[(n-1)%4])return 0;
}

python

n = int(input())
print('3971'[(n-1)%4])

快速幂

#include<bits/stdc++.h>
using namespace std;
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define int long long
#define rep(i,l,r) for(int i = l;i<=r;i++)
#define per(i,r,l) for(int i = r;i>=l;i--)
const int INF = 0x3f3f3f3f3f3f3f3f;
typedef pair<int,int> PII;
int qpow(int x,int n){int ans = 1;while(n){if(n&1) ans = ans * x % 10;x = x * x % 10;n>>=1;}return ans;
}
void solve(){int n;cin>>n;cout<<qpow(3,n);
}
signed main(){int T = 1;// cin>>T;while(T--){solve();}return 0;
}

# G - ASCII大小写转换

题意

给一个字符串 s s s ,将其中的大写字母转换为小写字母, 小写字母转换为大写字母

思路

对于一个小写字母,我们这样转换为大写字母: s[i] = s[i] - 'a' + 'A'

大写字母转换为小写字母同理s[i] = s[i] - 'A' + 'a'

代码

C

#include<stdio.h>
int main(){char ch;while(~scanf("%c",&ch)){if(ch == '\n') break;if('a' <= ch && ch <= 'z') putchar(char(ch - 'a' + 'A'));else putchar(char(ch - 'A' + 'a'));}return 0;
}

python

s = input()
ans = ''
for ch in s:ans += chr(ord(ch)^32)
print(ans)

H-index

题意

给出n个数, a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an, 请你找出一个最大的数 N N N , 满足a中 大于等于N的数至少为N个

思路

思路一:我们使用一个数组cnt记录一下每个数出现的次数。即cnt[a[i]]+= 1

然后逆序查找从 1 0 6 10^6 106 1 1 1 的每个数,查看是否满足条件 , 那么第一个满足条件的 i i i 即为答案。

条件为 ∑ j = i n c n t [ j ] ≥ i \sum_{j = i}^n cnt[j] \ge i j=incnt[j]i

思路二:对数组a进行逆序排序,这样就得出了以下规律: a a a数组中大于等于 a [ i ] a[i] a[i] 的数有 i i i个。

我们逆序遍历数组,找到最后一个满足 a [ i ] ≥ i a[i] \ge i a[i]i i i i即可 。

代码

C思路一

#include<stdio.h>
int cnt[1000006];
int main()
{int n;scanf("%d",&n);for(int i =1;i<=n;i++){int x;scanf("%d",&x);cnt[x]++;}int sum = 0;for(int i = 1000000;i>=0;i--){sum += cnt[i];if(sum >= i) {printf("%d",i);return 0;}}return 0;
}

C++思路二

#include<bits/stdc++.h>
using namespace std;
int a[1000006];
int main(){int n;cin>>n;for(int i = 1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);reverse(a+1,a+n+1);for(int i = 1;i<=n;i++){if(a[i] < i){cout<<i-1<<endl;break;}}return 0;
}

python

n = int(input())
a = [int(i) for i in input().split()]
a.sort(reverse=True)def check():for i in range(n):if(a[i]<i+1):return i;return nprint(check())

I - 飞云鸽鸽的和式

题意

给你一个数组,请你找出其中一段连续的区间, 使得区间中的数的总和尽可能大。

思路

思路一:本题给的 n n n很小,我们直接暴力枚举即可。复杂度 O ( n 3 ) O(n^3) O(n3)

思路二:如果我们加上一点前缀和的思想,在确认左端点,枚举右端点的时候,可以借用上一次的答案。这样就省去了第三重循环,复杂度 O ( n 2 ) O(n^2) O(n2)

思路三:如果我们再加上动态规划的思想,我们令 f i f_i fi 表示 以第i个数为结尾的 连续子数组的最大的和 , 那么我们的答案就是 m a x 1 ≤ i ≤ n f i max_{1 \le i \le n} f_i max1infi , 我们在枚举 i i i的时候,考虑两种情况

  1. 加入 f i − 1 f_{i-1} fi1对应的那一段
  2. 单独成为一段

当然取其中较大值是更好的。

于是最终的递推式为 f i = m a x ( f i − 1 + a i , a i ) f_i = max(f_{i-1} + a_i,a_i) fi=max(fi1+ai,ai)

时间复杂度为 O ( n ) O(n) O(n)

代码

C 思路一 O ( n 3 ) O(n^3) O(n3)

#include<stdio.h>
int a[105];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}int ans = 0xcfcfcfcf;//足够小的数for(int i = 1;i<=n;i++){for(int j = i;j<=n;j++){int sum = 0;for(int k = i;k<=j;k++){sum += a[k];}if(ans < sum) ans = sum;}}printf("%d",ans);
}

C思路二 O ( n 2 ) O(n^2) O(n2)

#include<stdio.h>
int a[105];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}int ans = 0xcfcfcfcf;//足够小的数for(int i = 1;i<=n;i++){int sum = 0;for(int j = i;j<=n;j++){sum += a[j];if(ans < sum) ans = sum;}}printf("%d",ans);
}

C思路三O(n)

#include<stdio.h>
int a[105];
int f[105];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}int ans = 0xcfcfcfcf;//足够小的数f[0] = 0xcfcfcfcf;for(int i = 1;i<=n;i++){if(f[i-1] < 0) f[i] = a[i];else f[i] = f[i-1] + a[i];if(ans < f[i]) ans = f[i];}printf("%d",ans);
}

python

n = int(input())
a = list(map(int, input().split()))
mi = 0
pre = 0
ans = -1000000000
for i in range(n):pre += a[i]ans = max(ans,pre-mi)mi = min(mi,pre)
print(ans)

J - 排队

题意

给一个数组 a a a , 对数组 a a a进行排序

思路

模板题,写对排序代码即可,

本题数据范围较小,使用朴素的 O ( n 2 ) O(n^2) O(n2) 排序算法也可以通过本题。

同时也可以使用进阶的 O ( n l o g n ) O(nlogn) O(nlogn) 排序算法来更快的解决问题。

代码

C 冒泡排序 O ( n 2 ) O(n^2) O(n2)

#include<stdio.h>
int a[5005];
int main(){int n;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i = 1;i<=n;i++){for(int j = i;j<=n;j++){if(a[i] > a[j]){int t = a[i];a[i] = a[j];a[j] = t;}}}for(int i = 1;i<=n;i++){printf("%d ",a[i]);}return 0;
}

C++ 排序函数 O ( n l o g n ) O(nlogn) O(nlogn)

#include<bits/stdc++.h>
using namespace std;
int a[5005];
int main(){int n;cin>>n;for(int i = 1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);for(int i = 1;i<=n;i++){cout<<a[i]<<" ";}
}

python

n = int(input())
a = [int(i) for i in input().split()]a.sort()
for i in range(n):print(a[i],end=' ')

K - 飞云鸽鸽在送信

题意

对于所有长度为 n n n的排列 p p p, 问满足 : 对于所有的 1 ≤ i ≤ n 1\le i \le n 1in , 都有 p i ≠ i p_i \not= i pi=i 的排列有多少。

(排列指数组[1,2,3,...,n] 随机打乱后的数组, 如长度为 3 3 3的排列有:[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1] , 长度为n的排列共有 A n n A_n^n Ann 个)

思路

本题考察“错排数”,为经典组合数学问题,大家可以上网搜索相关内容。

本题给出的 n n n很小, 暴力枚举所有的排列即可。

在C++中可以调用排列函数来生成长度为 n n n的全排列。

使用全排列的复杂度是 O ( n ! ∗ n ) O(n!*n) O(n!n)

下面给出更好的解法(时间复杂度 O ( n ) O(n) O(n))

错排数的递推式为$ f_n = \left{
\begin{array}{lr}
0 & n = 1 \
1& n = 2\
(f_{n-1} + f_{n-2}) * (n-1) &, n \ge 3
\end{array}
\right. $

对于 n n n等于 1 1 1 2 2 2,递推式很明显成立 ,对于n大于2的情况,我们考虑n的位置,

[2,1,4,3,*5*] ,前面的[2,1,4,3] 是一个长度为4的错排序,那么这个5可以放在前面四个位置中的任意一个。( n − 1 n-1 n1种可能)

假设我们放在数字 1 1 1的位置, [2,*5*,4,3,*1*] 此时数字1和数字5一定是满足条件的。

此时我们可以选择5是否要和“下标为1的数”交换位置

  • 如果交换位置[*5*,2,4,3,*1*],那么剩余n-2个数可以任意组合为错排序,方案数为 f n − 2 f_{n-2} fn2
  • 如果不交换位置[2,*5*,4,3,1],那么剩下的n-1个数都可以任意组合为错排序,方案数为 f n − 1 f_{n-1} fn1

代码

C全排列

#include<stdio.h>
int vis[15];
int a[15];
int t = 0;
int n;
int ans = 0;
void dfs(int step){if(step == n+1){for(int i = 1;i<=n;i++){if(a[i] == i) return;}ans ++;return;}for(int i = 1;i<=n;i++){if(vis[i]) continue;vis[i] = 1;a[step] = i;dfs(step+1);vis[i] = 0;}return ;
}
int main(){scanf("%d",&n);dfs(1);printf("%d\n",ans);return 0;
}

C++ 调用排列函数 O ( n ! ∗ n ) O(n!*n) O(n!n)

#include<bits/stdc++.h>
using namespace std;
int a[15];
int main(){int n;cin>>n;for(int i = 1;i<=n;i++){a[i] = i;}int ans = 0;do{bool ok = 1;for(int i = 1;i<=n;i++){if(a[i] == i) ok = 0;}if(ok) ans ++;}while(next_permutation(a+1,a+1+n));cout<<ans;return 0;
}

C递推 O ( n ) O(n) O(n)

#include<stdio.h>
int f[1000005];
int main(){int n;scanf("%d",&n);f[1] = 0;f[2] = 1;for(int i =3;i<=n;i++){f[i] = (i-1) *(f[i-1] + f[i-2]);}printf("%d",f[n]);return 0;
}

python

n = int(input())def cp(n):if n==1:return 0if n==2:return 1return (n-1)*(cp(n-1)+cp(n-2))print(cp(n))

L - P19E99喜欢16进制

题意

给一个十六进制数,输出他的十进制表示

思路

用字符串读取十六进制数,然后枚举十六进制数,然后不断累加到答案上即可。

代码

C

#include<stdio.h>
int main(){char ch;long long ans = 0;while(~scanf("%c",&ch)){if(ch == '\n') break;int x;if('0' <= ch && ch <= '9'){x = ch - '0';}else{x = ch - 'a' + 10;}ans = ans * 16 + x;}printf("%lld",ans);return 0;
}

python

s = input()
print(int(s,16))

相关文章:

2024zzuacm新生选拔赛第一场

2024zzuacm新生选拔赛第一场https://ac.nowcoder.com/acm/contest/92409 python代码源自我有异议症QAQ A - 降智视频 题意 起初有n个数都在丁丁手中&#xff0c;进行如下操作k次&#xff1a; 豆豆从丁丁手中拿走标号为奇数的数。对丁丁的其他的数进行重新标号。 问进行k次…...

IP地址如何支持远程办公?

由于当今社会经济的飞速发展&#xff0c;各个方向的业务都不免接触到跨省、跨市以及跨国办公的需要&#xff0c;随之而来的远程操作的不方便&#xff0c;加载缓慢&#xff0c;传输文件时间过长等困难&#xff0c;如何在万里之外实现远程办公呢&#xff1f;我们以以下几点进行阐…...

spring 集合注入格式

数组 List Set Map properties 案例 package org.example.dao.impl;import org.example.dao.BookDao;import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set;public class BookDaoImpl implements BookDao {private int[] array;p…...

基于Zabbix进行服务器运行情况监测

文章目录 引言I Zabbix主要构成下载并安装Zabbix被监控主机安装zabbix agent创建被监控主机报警设置II 常见问题cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)重置 Zabbix Web 界面密码Zabbix agent i…...

Github优质项目推荐 - 第五期

文章目录 Github优质项目推荐 - 第五期一、【localsend】&#xff0c;47.5k stars - 附近设备文件互传二、【Pake】&#xff0c;29.9k stars - 网页变成桌面应用三、【laravel-crm】&#xff0c;10.7k stars - CRM 解决方案四、【localstack】&#xff0c;55.7k stars - 本地 A…...

Java_ EE (网络编程)

网络编程基本概念: 计算机网络计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统。从其…...

Qt子线程运行报错error: undefined reference to `excelThread::conversionFinished()‘

如标题所示&#xff0c;笔者试图在子线程中使用基于GUI的对话框&#xff0c;而基于GUI的对话框需要在主线程&#xff08;也称为GUI线程&#xff09;中运行&#xff0c;在子线程中不能直接用&#xff0c;需要使用信号与槽机制&#xff0c;将请求发送到主线程&#xff0c;然后在主…...

VSCode 使用 EmmyLua 对lua进行调试

时间&#xff1a;2024年10月 其他&#xff1a;win10&#xff0c;EmmyLua v0.8.20 参考&#xff1a;https://blog.csdn.net/ShenHaoDeHao/article/details/140268354 有几个概念搞清楚就好理解了。一般开发中&#xff0c;我们编写的lua文件由宿主程序的来解析、执行&#xff1…...

neovim ubuntu中WARNING No clipboard tool found

我在vnc远程的ubuntu中做个临时开发&#xff0c;发现neovim无法复制文字&#xff0c;于是我:checkhealth查看了一下&#xff0c;测试结果如下&#xff1a; WARNING No clipboard tool found. Clipboard registers (" and "*) will not work.ADVICE::help clipboard …...

1882B - Sets and Union

题意就是有n个集合&#xff0c;对n个集合做并集得到 S S S, 现在抽n个集合中的集合做交集得到 T T T&#xff0c;问如何做让 S ≠ T S\neq T ST,并且让 T T T尽可能大。 这道题如果数据大一些做不了&#xff0c;但是数字大小只在50之间&#xff0c;并且集合的大小50,n大小50…...

thinkphp阿里云发送短信验证码,存储到缓存中完成手机号验证

源码demo下载地址 https://download.csdn.net/download/hanzhuhuaa/89865893 或者也可以在文章中查看demo源码 ↓ 第一步安装阿里云 SDK 您可以使用 Composer 来安装阿里云的 SDK。在项目目录中运行: composer require alibabacloud/sdk第二步发送短信 namespace app\api\c…...

题目解析:1423. 可获得的最大点数

题目解析&#xff1a;1423. 可获得的最大点数 > Problem: 1423. 可获得的最大点数 题目描述&#xff1a; 你有一个整数数组 cardPoints&#xff0c;表示排成一行的几张卡牌的点数。你每次可以从这排卡牌的 开头或末尾 拿一张卡牌&#xff0c;最终你需要正好拿 k 张卡牌。目…...

【MySQL】数据库的操作

文章目录 一、查看数据库&#xff08;显示所有的数据库&#xff09;二、使用数据库二、创建数据库字符集编码&#xff08;为数据进行编码然后保存&#xff09;校验&#xff08;排序&#xff09;规则&#xff08;如何对数据进行排序&#xff09;推荐这样创建数据库&#xff1a; …...

Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存

1、文件所在位置&#xff1a; 2、需要Guava依赖&#xff1a; <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>3、启动时就读取放入缓存的代码&#xf…...

rsync 数据镜像同步服务笔记

1. rsync概述 定义&#xff1a;rsync是一款数据镜像备份工具&#xff0c;支持快速完全备份和增量备份&#xff0c;支持本地复制与远程同步。镜像指两份完全相同的数据备份.特点&#xff1a; 支持整个目录树和文件系统的更新&#xff1b;可选择性地保留符号链接、文件属性、权限…...

【layui】多文件上传组件实现

插件预览效果&#xff1a; 需要引入layui的脚本文件layui.js和样式文件layui.css html代码&#xff1a; <div class"layui-input-block"><div class"layui-upload-list"><table class"layui-table"><colgroup><col…...

多维最短路

D-最短&#xff1f;路径_牛客小白月赛102 (nowcoder.com) #include <bits/stdc.h> #define int long long using namespace std; const int N1e6; struct node {int x;int y;int z;bool operator>(const node& other) const {return x> other.x;} }; signed m…...

设计模式03-装饰模式(Java)

4.4 装饰模式 1.模式定义 不改变现有对象结构的情况下&#xff0c;动态地给该对象增加一些职责&#xff08;即增加其额外功能&#xff09;的模式。 2.模式结构 抽象构件角色 &#xff1a;定义一个抽象接口以规范准备接收附加责任的对象。客户端可以方便调用装饰类和被装饰类…...

TiDB 监控组件之 Blackbox_exporter 运行原理

作者&#xff1a; TiDBerHailang 原文来源&#xff1a; https://tidb.net/blog/b269e96f 1. 介绍 本文介绍了 TiDB 集群监控组件Blackbox Exporter监控运行机制和配置方式。Blackbox Exporter是Prometheus官方提供的 Exporter&#xff0c;它能够通过多种协议对网络服务进行…...

Java之网络编程详解

一、Java网络编程的基本概念 Java网络编程是指在Java语言中使用网络协议和API进行网络通信的编程技术。Java网络编程可以实现多种应用场景&#xff0c;包括客户端/服务器通信、网站开发、分布式系统等。 二、Java网络编程的基本原理 网络编程的核心概念包括网络通信协议、So…...

苍穹外卖学习笔记(二十)

文章目录 用户端历史订单模块&#xff1a;查询历史订单OrderControllerOrderServiceOrderServiceImpl 查询订单详情OrderControllerOrderServiceOrderServiceImpl 用户端历史订单模块&#xff1a; 查询历史订单 OrderController /*** 历史订单*/GetMapping("/historyOrd…...

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币&#xff0c;&#xff08;i 1&#xff0c; 2&#xff0c; 3 &#xff0c; …&#xff09;,那么展开看每一天可以得到的金币数&#xff1a;1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 &#xff0c;2个2, 3个3…,那么我…...

【数据脱敏方案】不使用 AOP + 注解,使用 SpringBoot+YAML 实现

文章目录 引入认识 YAML 格式规范定义脱敏规则格式脱敏逻辑实现读取 YAML 配置文件获取脱敏规则通过键路径获取对应字段规则原始优化后 对数据进行脱敏处理递归生成字段对应的键路径脱敏测试 完整工具类 引入 在项目中遇到一个需求&#xff0c;需要对交易接口返回结果中的指定…...

dbt doc 生成文档命令示例应用

DBT提供了强大的命令行工具&#xff0c;它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够为数据模型生成文档&#xff0c;这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 dbt doc 命令 dbt docs命令有…...

【Windows】【DevOps】Windows Server 2022 安装ansible,基于powershell实现远程自动化运维部署 入门到放弃!

目标服务器安装openssh server参考 【Windows】【DevOps】Windows Server 2022 在线/离线 安装openssh实现ssh远程登陆powershell、scp文件拷贝-CSDN博客 注意&#xff1a;Ansible不支持Windows操作系统部署 根据官方说明&#xff1a; Windows Frequently Asked Questions —…...

深入理解 Parquet 文件格式

深入理解 Parquet 文件格式 深入理解 Parquet 文件格式一、引言二、为什么采用 Parquet 格式1. 行式存储的局限性2. 列式存储的优势 三、Parquet 的工作原理1. 文件结构2. 列块和页面3. 编码和压缩 四、具体数据实例1. 数据示例2. 行式存储 vs 列式存储3. 查询性能对比4. 压缩效…...

计算机挑战赛3

老式的计算机只能按照固定次序进行运算&#xff0c;华安大学就有这样一台老式计算机&#xff0c;计算模式为AB#C&#xff0c;和#为输入的运算符(可能是、-或*&#xff0c;运算符优先级与C一致)&#xff0c;现给出A&#xff0c;B&#xff0c;C的数值以及和#对应的运算符&#xf…...

深度学习:循环神经网络—RNN的原理

传统神经网络存在的问题&#xff1f; 无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。 RNN神经网络 RNN&#xff08;Recurrent Neural Network&#xff0c;循环神经网络&#xff09;是一种专门用于处理序列数据的神经网络。在处理序列输入时具有记忆性…...

蓝桥杯刷题--幸运数字

幸运数字 题目: 解析: 我们由题目可以知道,某个进制的哈沙德数就是该数和各个位的和取整为0.然后一个幸运数字就是满足所有进制的哈沙德数之和.然后具体就是分为以下几个步骤 1. 我们先写一个方法,里面主要是用来判断,这个数在该进制下是否是哈沙德数 2. 我们在main方法里面调用…...

Node.js入门——fs、path模块、URL端口号、模块化导入导出、包、npm软件包管理器

Node.js入门 1.介绍 定义&#xff1a;跨平台的JS运行环境&#xff0c;使开发者可以搭建服务器端的JS应用程序作用&#xff1a;使用Node.Js编写服务器端代码Node.js是基于Chrome V8引擎进行封装&#xff0c;Node中没有BOM和DOM 2.fs模块-读写文件 定义&#xff1a;封装了与…...