Codeforces Round 929 (Div. 3)(A,B,C,D,E,F,G)

这场没考什么算法,比较水,难度也不是很高。比赛链接

硬要说的话E有个 前缀和 加 二分,F是数学+BFS,G是个构造


A. Turtle Puzzle: Rearrange and Negate

题意:

给你一个由 n n n 个整数组成的数组 a a a 。您必须对数组执行以下两个操作(先执行第一个操作,再执行第二个操作):

  1. 任意重新排列数组元素或保持元素顺序不变。
  2. 最多选择一个连续的元素段,并将该元素段中所有元素的符号替换为相反符号。形式上,可以选择一对索引 l , r l, r l,r 这样的 1 ≤ l ≤ r ≤ n 1 \le l \le r \le n 1lrn 并为所有 l ≤ i ≤ r l \le i \le r lir 指定 a i = − a i a_i = -a_i ai=ai (符号取反)。请注意,您也可以不选择一对索引,让所有元素的符号保持不变。

在进行这两次操作后,数组元素的最大和是多少?

思路:

显然先把负的元素排到一起,然后对它们符号取反,得到的就全是正数了,这时候加起来最大

code:

#include <iostream>
#include <cstdio>
using namespace std;int T,n;
long long t;int main(){cin>>T;while(T--){cin>>n;t=0;for(int i=1,tmp;i<=n;i++){cin>>tmp;t+=abs(tmp);}cout<<t<<endl;}return 0;
}

B. Turtle Math: Fast Three Task

题意:

给你一个数组 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an

在一次移动中,你可以执行以下两种操作中的任何一种。您可以执行任意次数的移动:

  • 从数组中选择一个元素并将其从数组中移除。这样数组的长度会减少 1 1 1
  • 从数组中选择一个元素并将其数值增加 1 1 1

如果当前数组为空,则不能再移动。

你的任务是找出使数组中的元素之和 a a a 能被 3 3 3 整除所需的最少移动次数。你可能需要走 0 0 0 步。

注意空数组(长度为 0 0 0 的数组)的元素之和等于 0 0 0

思路:

先把元素和算出来,如果元素和本身就模3同余0,那就就不需要动了。如果余1,那么删掉模3余1的某个元素就可以了,或者给某个元素加两次。如果余2,那么删掉模3余2的某个元素就可以了,或者给某个元素加一次。因此统计一下有无模3余1和2的元素,之后直接讨论就行了。

code:

#include <iostream>
#include <cstdio>
#include <set>
using namespace std;int T,n;int main(){cin>>T;while(T--){cin>>n;set<int> S;int tot=0;for(int i=1,t;i<=n;i++){cin>>t;tot=(t+tot)%3;S.insert(t%3);}if(tot==0){cout<<0<<endl;}else if(tot==1){if(S.count(1))cout<<1<<endl;else cout<<2<<endl;}else if(tot==2){//直接加1就完事了,还删它干嘛cout<<1<<endl;}}return 0;
}

C. Turtle Fingers: Count the Values of k

题意:

给你三个整数 a a a b b b l l l ( a , b , l > 0 a,b,l\gt 0 a,b,l>0 )。

可以证明,总有一种方法可以选择非负(即 ≥ 0 \ge 0 0 )的整数 k k k x x x y y y ,使得 l = k ⋅ a x ⋅ b y l = k \cdot a^x \cdot b^y l=kaxby .

你的任务是找出所有这些方法中 k k k 的不同可能值的个数。

思路:

发现 l ≤ 1 0 6 l\le 10^6 l106,数据范围很小,而且 x , y x,y x,y 都在指数上,根本没有很多可行的取值。所以直接暴力枚举就行了。

code:

#include <iostream>
#include <cstdio>
#include <set>
using namespace std;
typedef long long ll;int T,a,b,l;int main(){cin>>T;while(T--){cin>>a>>b>>l;set<int> S;for(ll x=1;l%x==0;x*=a){for(ll y=1;l%y==0;y*=b){if(l%(x*y)==0)S.insert(l/x/y);}}cout<<S.size()<<endl;}return 0;
}

D. Turtle Tenacity: Continual Mods

题意:

给定数组 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an ,判断是否有可能将其元素**重排为 b 1 , b 2 , … , b n b_1, b_2, \ldots, b_n b1,b2,,bn ,从而得到 b 1 m o d b 2 m o d … m o d b n ≠ 0 b_1 \bmod b_2 \bmod \ldots \bmod b_n \neq 0 b1modb2modmodbn=0

这里的 x m o d y x \bmod y xmody 表示 x x x 除以 y y y 所得的余数。另外,模运算是从左向右计算的。即 x m o d y m o d z = ( x m o d y ) m o d z x \bmod y \bmod z = (x \bmod y) \bmod z xmodymodz=(xmody)modz 。例如, 2024 m o d 1000 m o d 8 = ( 2024 m o d 1000 ) m o d 8 = 24 m o d 8 = 0 2024 \bmod 1000 \bmod 8 = (2024 \bmod 1000) \bmod 8 = 24 \bmod 8 = 0 2024mod1000mod8=(2024mod1000)mod8=24mod8=0

思路:

不妨先给所有数排个序,不难发现如果最小的数只有一个,那就按顺序模就行了。

如果最小的数有多个,考虑用某个大数模它,得到比它更小的正数,然后继续像上面一样做。

但是如果得不到比最小数更小的正数,说明每个大数都是最小数 x x x 的倍数,它们互相模得到的也是 x x x 的倍数,这时无论怎么搞,都一定会被模 x x x 给干成 0 0 0,无解。

code:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e5+5;int T,n;
int a[maxn];int main(){cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+n+1);if(a[1]!=a[2])puts("YES");else {bool flag=false;for(int i=3;i<=n;i++){if(a[i]%a[1]){flag=true;break;}}puts((flag)?"YES":"NO");}}return 0;
}

E. Turtle vs. Rabbit Race: Optimal Trainings

题意:

艾萨克开始训练。有 n n n 条跑道可供使用, i i i 条跑道( 1 ≤ i ≤ n 1 \le i \le n 1in )由 a i a_i ai 个等长的部分组成。

给定一个整数 u u u ( 1 ≤ u ≤ 1 0 9 1 \le u \le 10^9 1u109 ),完成每一段都能使艾萨克的能力提高一个特定值,具体描述如下:

  • 完成第 1 1 1 部分会使艾萨克的成绩提高 u u u
  • 完成第 2 2 2 部分会使艾萨克的能力提高 u − 1 u-1 u1
  • 完成第 3 3 3 部分会使艾萨克的成绩提高 u − 2 u-2 u2
  • … \ldots
  • 完成第 k k k 部分( k ≥ 1 k \ge 1 k1 )会使艾萨克的成绩提高 u + 1 − k u+1-k u+1k u + 1 − k u+1-k u+1k 的值可以是负数,这意味着完成额外的部分会降低艾萨克的成绩)。

您还得到了一个整数 l l l 。您必须选择一个整数 r r r ,使 l ≤ r ≤ n l \le r \le n lrn 和艾萨克都能完成赛道 l , l + 1 , … , r l, l + 1, \dots, r l,l+1,,r段(即总共完成 l ≤ r ≤ n l \le r \le n lrn 个段)。(即总共完成 ∑ i = l r a i = a l + a l + 1 + … + a r \sum_{i=l}^r a_i = a_l + a_{l+1} + \ldots + a_r i=lrai=al+al+1++ar 节)。

请回答下列问题:你所能选择的最佳 r r r 是什么,能最大限度地提高艾萨克的成绩?

如果有多个 r r r 可以最大限度地提高艾萨克的成绩,请选出小的 r r r

为了增加难度,你需要回答 q q q 个不同值的 l l l u u u

思路:

因为如果区间和为 u u u 或者 u + 1 u+1 u+1时,进行进行第 u u u u + 1 u+1 u+1 组训练的时候收益就已经降到 1 1 1 0 0 0 了,之后再训练就是负数了。因此贪心的思路想就是尽量使得 [ l , r ] [l,r] [l,r] 区间和尽量等于 u u u 或者 u + 1 u+1 u+1

因为算的是区间和,所以先用前缀和处理一下,用数组 s [ i ] s[i] s[i] 表示前 1 ∼ i 1\sim i 1i 位置上的和。左区间确定后,我们想要右区间的前缀和 s [ r ] s[r] s[r] 满足 s [ r ] − s [ l − 1 ] = u s[r]-s[l-1]=u s[r]s[l1]=u,于是 s [ r ] = s [ l − 1 ] + u s[r]=s[l-1]+u s[r]=s[l1]+u,我们使用二分可以找到第一个 s [ r ] ≥ s [ l − 1 ] + u s[r]\ge s[l-1]+u s[r]s[l1]+u 的位置,但是我们二分找到的无法保证它一定是最优的,但是我们可以保证最优的答案一定在它左边一个位置,他自己或右边一个位置,再向外找就会离 u , u + 1 u,u+1 u,u+1 越远,因此答案一定不优。我们只找一下这三个位置的收益,取最大值即可。

收益的计算式是个等差数列求和: u + ( u − 1 ) + ( u − 2 ) + ⋯ + ( u + 1 − t ) = ( u + u + 1 − t ) ∗ t 2 u+(u-1)+(u-2)+\dots+(u+1-t)=\frac{(u+u+1-t)*t}{2} u+(u1)+(u2)++(u+1t)=2(u+u+1t)t

实际上,它的收益函数画出来是个二次函数形状的函数,直接跑三分也是可以的。

code:

#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=1e5+5;
typedef long long ll;
const ll inf=1e18;int T,n,a[maxn];
ll s[maxn];int Q,l,u;inline ll f(ll u,ll t){return (u+u+1-t)*t/2;}int main(){cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i],s[i]=s[i-1]+a[i];cin>>Q;while(Q--){cin>>l>>u;ll ans=-inf,r;int idx=lower_bound(s+l-1,s+n+1,s[l-1]+u)-s;for(int i=max(l,idx-1);i<=min(idx+1,n);i++)if(ans<f(u,s[i]-s[l-1])){ans=f(u,s[i]-s[l-1]);r=i;}cout<<r<<" ";}cout<<endl;}return 0;
}

F. Turtle Mission: Robot and the Earthquake

题意:

世界是一个有 n n n 行和 m m m 列的网格。行的编号为 0 , 1 , … , n − 1 0, 1, \ldots, n-1 0,1,,n1 ,列的编号为 0 , 1 , … , m − 1 0, 1, \ldots, m-1 0,1,,m1 。在这个世界里,列是循环的(即每列的顶部和底部单元格是相邻的)。第 i i i 行和第 j j j 列( 0 ≤ i < n , 0 ≤ j < m 0 \le i\lt n, 0 \le j \lt m 0i<n,0j<m )上的单元格表示为 ( i , j ) (i,j) (i,j)

0 0 0 时间, ( i , j ) (i,j) (i,j) 单元格(其中 0 ≤ i < n , 0 ≤ j < m 0 \le i \lt n, 0 \le j \lt m 0i<n,0j<m 单元格)包含 ( i , j ) (i,j) (i,j) 0 0 0 时间。(其中 0 ≤ i < n , 0 ≤ j < m 0 \le i \lt n, 0 \le j \lt m 0i<n,0j<m 包含。单元格 ( i , j ) (i,j) (i,j) 的状态可以用整数 a i , j a_{i,j} ai,j 来描述:

  • 如果是 a i , j = 1 a_{i,j} = 1 ai,j=1,则 ( i , j ) (i,j) (i,j) 处有一块石头。
  • 如果是 a i , j = 0 a_{i,j} = 0 ai,j=0,则 ( i , j ) (i,j) (i,j) 处什么都没有。

由于地震余震的影响,岩柱跟随构造板块运动:每个岩柱以每单位时间 1 1 1 个单元的速度循环向上移动。从形式上看,对于某个 0 ≤ i < n , 0 ≤ j < m 0 \le i \lt n, 0 \le j \lt m 0i<n,0j<m ,如果 ( i , j ) (i,j) (i,j) 中包含一块岩石,那么它将从 ( i , j ) (i, j) (i,j) 移动到 ( i − 1 , j ) (i - 1, j) (i1,j) (如果 ( i − 1 , j ) (i - 1, j) (i1,j) 中包含一块岩石,那么它将从 ( i , j ) (i, j) (i,j) 移动到 ( n − 1 , j ) (n - 1, j) (n1,j) )。(或移动到 ( n − 1 , j ) (n - 1, j) (n1,j) ,如果是 i = 0 i=0 i=0 )。

名为 RT 的机器人最初位于 ( 0 , 0 ) (0,0) (0,0) 。它必须移动到 ( n − 1 , m − 1 ) (n-1,m-1) (n1,m1) 处进行地震救援(移动到最右下方的单元格)。地震不会改变机器人的位置,只会改变世界中岩石的位置。

假设 RT 的当前位置为 ( x , y ) (x,y) (x,y) ( 0 ≤ x < n , 0 ≤ y < m 0 \le x \lt n, 0 \le y \lt m 0x<n,0y<m ),那么它可以在 0 ≤ x < n , 0 ≤ y < m 0 \le x \lt n, 0 \le y \lt m 0x<n,0y<m 中移动。 0 ≤ x < n , 0 ≤ y < m 0 \le x \lt n, 0 \le y \lt m 0x<n,0y<m ),它可以执行以下操作:

  • 循环向上移动一格,即使用 1 1 1 单位时间从 ( x , y ) (x,y) (x,y) 移动到 ( ( x + n − 1 ) m o d n , y ) ((x+n-1) \bmod n, y) ((x+n1)modn,y)
  • 向下循环移动一个单元格,即以 1 1 1 为时间单位从 ( x , y ) (x,y) (x,y) 移动到 ( ( x + 1 ) m o d n , y ) ((x+1) \bmod n, y) ((x+1)modn,y)
  • 向右移动一格,即使用 1 1 1 个时间单位从 ( x , y ) (x,y) (x,y) ( x , y + 1 ) (x, y+1) (x,y+1) 。(只有在 y < m − 1 y \lt m-1 y<m1 时,RT 才能执行此操作)。

注意,RT 不能使用操作向左移动,也不能停留在某一位置。

不幸的是,RT 在与岩石碰撞后会爆炸。因此,当 RT 位于 ( x , y ) (x,y) (x,y) 处,而 ( ( x + 1 ) m o d n , y ) ((x+1) \bmod n, y) ((x+1)modn,y) ( ( x + 2 ) m o d n , y ) ((x+2) \bmod n, y) ((x+2)modn,y) 处有一块岩石时,RT 不能向下移动,否则就会被岩石击中。

同样,如果 y + 1 < m y+1 \lt m y+1<m ( ( x + 1 ) m o d n , y + 1 ) ((x+1) \bmod n, y+1) ((x+1)modn,y+1) 处有一块岩石,RT 就不能向右移动,否则就会被岩石击中。

然而,值得注意的是,如果在 ( x m o d n , y + 1 ) (x \bmod n, y+1) (xmodn,y+1) ( ( x + 1 ) m o d n , y ) ((x+1) \bmod n, y) ((x+1)modn,y) 处有一块岩石,RT 仍然可以安全地向右移动。

求 RT 到达 ( n − 1 , m − 1 ) (n-1,m-1) (n1,m1) 时不与任何岩石相撞所需的最短时间。如果无法做到,则输出 − 1 -1 1

思路:

逆天长题面,读着读着就读假了,以为有个向左走的操作,然后WA一小时的test 4,恶心人。

先说好,行是从 0 ∼ n − 1 0\sim n-1 0n1,列是从 0 ∼ m − 1 0\sim m-1 0m1,方便取模 模拟循环。

石头可能有很多,我们不可能每次移动都算一下石头在哪里,所以我们根据相对论,不如把石头看成静止的,把移动附加到终点和机器人的移动上。发现终点相当于每次向下移动一格,机器人向下走变成了向下走两步,向右走变成了向右下走一步,向上走变成了静止不动。

显然我们在中间是不会静止不动的,因为终点所在列没有石头,所以我们不如先跑到终点列,再看要不要静止等终点。现在就变成了用两种移动方式(向下两格,或向右下一格)跑bfs。

到终点列看如何到终点最快,由于我们在终点的时候不需要管石头,所以现在再让石头动起来,现在终点就静止了,我们要么一步一步向下走到终点,要么一步一步向上走到终点,两者取小值。假设我们已经走过了 t m tm tm 时间到达第 m − 1 m-1 m1 列,现在在第 u x ux ux 行上。那么终点现在相当于在第 p o s = ( n − 1 + t m ) % n pos=(n-1+tm)\%n pos=(n1+tm)%n 行上, t = a b s ( p o s − u x ) t=abs(pos-ux) t=abs(posux) 就是两点间距离, n − t n-t nt 就是走另外一条路的距离,取 m i n ( t , n − t ) min(t,n-t) min(t,nt) 即可。

code:

#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
const int maxn=1e3+5;
const int inf=1e9;int T,n,m;struct state{int x,y;state(int x,int y):x(x),y(y){};
};int fx[]={2,1},fy[]={0,1};int main(){cin>>T;while(T--){cin>>n>>m;vector<vector<int> > mp(n+1,vector<int>(m+1,0));for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>mp[i][j];queue<state> q;vector<vector<int> > d(n+1,vector<int>(m+1,inf));int ans=inf;q.push(state(0,0));d[0][0]=0;while(!q.empty()){int ux=q.front().x,uy=q.front().y;q.pop();if(d[ux][uy]>=ans)continue;if(uy==m-1){int pos=(n-1+d[ux][uy])%n,t=abs(ux-pos);ans=min(ans,d[ux][uy]+min(t,n-t));continue;}for(int i=0,x,y;i<2;i++){x=(ux+fx[i])%n;y=uy+fy[i];if(y<0)continue;if((i==0 && mp[(ux+1)%n][uy]) || mp[x][y])continue;if(d[ux][uy]+1<d[x][y]){d[x][y]=d[ux][uy]+1;q.push(state(x,y));}}}if(ans!=inf)cout<<ans<<endl;else cout<<-1<<endl;}return 0;
}

G. Turtle Magic: Royal Turtle Shell Pattern

思路:

乌龟爱丽丝目前正在设计一个幸运饼干盒,她想把洛书的理论融入其中。

这个盒子可以看作是一个 n × m n \times m n×m 网格( n , m ≥ 5 n, m \ge 5 n,m5 ),其中行的编号为 1 , 2 , … , n 1, 2, \dots, n 1,2,,n ,列的编号为 1 , 2 , … , m 1, 2, \dots, m 1,2,,m 。每个单元格既可以是,也可以有一个以下形状的幸运饼干:圆形正方形。位于第 a a a 行和第 b b b 列交叉处的单元格表示为 ( a , b ) (a, b) (a,b)

最初,整个网格是空的。然后,爱丽丝对幸运饼干盒进行 q q q 次操作。 i i i /th操作( 1 ≤ i ≤ q 1 \le i \le q 1iq )如下:指定当前空单元格 ( r i , c i ) (r_i,c_i) (ri,ci) 和一个形状(圆形或方形),然后在单元格 ( r i , c i ) (r_i,c_i) (ri,ci) 中放入一个指定形状的幸运饼干。请注意,在进行 i i i /th操作后,单元格 ( r i , c i ) (r_i,c_i) (ri,ci) 不再为空。

在所有操作之后的每一次 q q q 操作之前,爱丽丝想知道在所有剩余的空单元格中放置幸运饼干的方法有多少种,从而满足以下条件:

没有三个连续的单元格(水平方向、垂直方向和对角线方向)包含相同形状的饼干。形式上

  • 不存在满足 1 ≤ i ≤ n , 1 ≤ j ≤ m − 2 1 \le i \le n, 1 \le j \le m-2 1in,1jm2 条件的 ( i , j ) (i,j) (i,j) ,即 ( i , j ) , ( i , j + 1 ) , ( i , j + 2 ) (i,j), (i,j+1), (i,j+2) (i,j),(i,j+1),(i,j+2) 单元格中有相同形状的饼干。
  • 不存在满足 1 ≤ i ≤ n − 2 , 1 ≤ j ≤ m 1 \le i \le n-2, 1 \le j \le m 1in2,1jm 条件的 ( i , j ) (i,j) (i,j) ,即 ( i , j ) , ( i + 1 , j ) , ( i + 2 , j ) (i,j), (i+1,j), (i+2,j) (i,j),(i+1,j),(i+2,j) 单元格中存在形状相同的饼干。
  • 不存在满足 1 ≤ i ≤ n − 2 , 1 ≤ j ≤ m − 2 1 \le i \le n-2, 1 \le j \le m-2 1in2,1jm2 条件的 ( i , j ) (i,j) (i,j) ,即 ( i , j ) , ( i + 1 , j + 1 ) , ( i + 2 , j + 2 ) (i,j), (i+1,j+1), (i+2,j+2) (i,j),(i+1,j+1),(i+2,j+2) 单元格中有形状相同的曲奇饼干。
  • 不存在满足 1 ≤ i ≤ n − 2 , 1 ≤ j ≤ m − 2 1 \le i \le n-2, 1 \le j \le m-2 1in2,1jm2 条件的 ( i , j ) (i,j) (i,j) ,即 ( i , j + 2 ) , ( i + 1 , j + 1 ) , ( i + 2 , j ) (i,j+2), (i+1,j+1), (i+2,j) (i,j+2),(i+1,j+1),(i+2,j) 单元格中有形状相同的曲奇饼干。

您应该输出所有答案的模数 998244353 998244353 998244353 。另外请注意,在经过一些操作后,有可能已经放置的糖果已经不满足条件,在这种情况下,您应该输出 0 0 0

思路:

建议看这个讲解。就是个构造,发现只有八种情况能构造成功,然后一个一个暴力对一下看看能不能行。放G题算是有点德不配位了。

code:

#include <iostream>
#include <cstdio>
#include <set>
#include <cstring>
using namespace std;int T,n,m,q;
string str[2]={"circle","square"};int main(){cin>>T;while(T--){cin>>n>>m>>q;set<int> S;for(int i=1;i<=8;i++)S.insert(i);cout<<8<<endl;string t;for(int i=1,x,y;i<=q;i++){cin>>x>>y>>t;x--;y--;int ans=0;if(S.count(1)){if(str[(x+y%4/2)&1]!=t)S.erase(1);}if(S.count(2)){if(str[(x+(y+3)%4/2)&1]!=t)S.erase(2);}if(S.count(3)){if(str[(x+(y+2)%4/2)&1]!=t)S.erase(3);}if(S.count(4)){if(str[(x+(y+1)%4/2)&1]!=t)S.erase(4);}if(S.count(5)){if(str[(x%4/2+y)&1]!=t)S.erase(5);}if(S.count(6)){if(str[((x+3)%4/2+y)&1]!=t)S.erase(6);}if(S.count(7)){if(str[((x+2)%4/2+y)&1]!=t)S.erase(7);}if(S.count(8)){if(str[((x+1)%4/2+y)&1]!=t)S.erase(8);}cout<<S.size()<<endl;}}return 0;
}

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

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

相关文章

IOC 和 AOP

IOC 所谓的IOC&#xff08;inversion of control&#xff09;&#xff0c;就是控制反转的意思。何为控制反转&#xff1f; 在传统的程序设计中&#xff0c;应用程序代码通常控制着对象的创建和管理。例如&#xff0c;一个对象需要依赖其他对象&#xff0c;那么它会直接new出来…

LNMP架构搭建

前言 LNMP架构是一种用于搭建Web服务器环境的解决方案&#xff0c;它由Linux、Nginx、MySQL&#xff08;或MariaDB&#xff09;、PHP&#xff08;或Python或Perl&#xff09;这四个开源软件组成。这种架构通常用于搭建高性能的网站和Web应用程序。 目录 一、编译安装nginx …

MySQL里的两个“二次”

文章中所有图片均来自网络 一、double write 第一个二次是mysql一个崩溃恢复很重要的特性-重复写入。 doublewrite缓冲区是位于系统表空间中的存储区域&#xff0c;在该区域中&#xff0c;InnoDB会在将页面写入数据文件中的适当位置之前&#xff0c;从InnoDB缓冲池中刷新这些页…

React中使用useActive

1.引入 import { useActivate } from "react-activation";2.React Activation 在React中使用react-activation,其实就是类似于Vue中的keep-alive&#xff0c;实现数据的缓存&#xff1b; 源码&#xff1a; import { ReactNode, ReactNodeArray, Context, Component…

vue3+vite+ts配置多个代理并解决报404问题

之前配置接口代理总是报404,明明接口地址是对的但还是报是因数写法不对;用了vue2中的写法 pathRewrite改为rewrite 根路径下创建env文件根据自己需要名命 .env.development文件内容 # just a flag ENVdevelopment# static前缀 VITE_APP_PUBLIC_PREFIX"" # 基础模块…

为高频大功率设计的双面水冷厚膜电阻方案

EAK双面水冷厚膜电阻是一种具有良好散热性能的电阻器&#xff0c;常用于需要高效散热的电子设备中。其包括第一绝缘介质层、厚膜电阻层、第二绝缘介质层以及用于液体流通的金属腔体&#xff0c;第一绝缘介质层设置于金属腔体的上表面&#xff1b;第一绝缘介质层表面设有厚膜电阻…

nginx反向代理之缓存 客户端IP透传 负载均衡

一 缓存功能 缓存功能可以加速访问&#xff0c;如果没有缓存关闭后端服务器后&#xff0c;图片将无法访问&#xff0c;缓存功能默认关闭&#xff0c;需要开启。 相关选项&#xff1a; ​ proxy_cache zone_name | off; 默认off #指明调用的缓存&#xff0c;或关闭缓存机制;C…

MySql-多表设计-一对一

目录 一对一 一对一 一对一关系表在实际开发中应用起来比较简单&#xff0c;通常是用来做单表的拆分&#xff0c;也就是将一张大表拆分成两张小表&#xff0c;将大表中的一些基础字段放在一张表当中&#xff0c;将其他的字段放在另外一张表当中&#xff0c;以此来提高数据的操…

kali linux通过aircrack-ng命令破解wifi密码

相关阅读&#xff1a;如何破解攻击WiFi 百度安全验证https://baijiahao.baidu.com/s?id1764248756021219497&wfrspider&forpc上面2篇文章写得都很不错 一、前期准备工作 1、将无线网卡挂载到Kali上 ​ 将无线网卡插到电脑上&#xff0c;如果弹出检测到新的USB设备&…

10、电源管理入门之OPP介绍

目录 1. 什么是OPP,怎么用? 2. 系统初始化加载OPP信息 3. 触发使用 4. API介绍 之前的文章设置clock的时候多次提到了(Operating Performance Point)OPP,例如DEVFreq、CPUFreq等,在现代SoC上存在有Power Domain,也可以以Power Domain为单位进行OPP的电压频率定义。 …

成人年龄判断(个人学习笔记黑马学习)

结合前面学习的input输入语句&#xff0c;完成如下案例: 1.通过input语句&#xff0c;获取键盘输入&#xff0c;为变量age赋值。(注意转换成数字类型) 2.通过if判断是否是成年人&#xff0c;满足条件则输出提示信息&#xff0c;如下&#xff1a; 欢迎来到黑马儿童游乐场&#x…

Window系统安装USB Redirector结合cpolar实现远程访问本地USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…

Spark Bloom Filter Join

1 综述 1.1 目的 Bloom Filter Join&#xff0c;或者说Row-level Runtime Filtering&#xff08;还额外有一条Semi-Join分支&#xff09;&#xff0c;是Spark 3.3对运行时过滤的一个最新补充   之前运行时过滤主要有两个&#xff1a;动态分区裁剪DPP&#xff08;开源实现&am…

迭代器模式:分离遍历逻辑与数据结构,实现统一访问接口与灵活扩展

文章目录 一、引言二、应用场景与技术背景三、模式定义与实现四、优缺点分析总结&#xff1a; 一、引言 ​ 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种方法顺序访问聚合对象的元素&#xff0c;而又不暴露其底层表示。迭…

nginx 日志,压缩,https功能介绍

一&#xff0c; 自定义访问日志 &#xff08;一&#xff09;日志位置存放 1&#xff0c;格式 2&#xff0c; 级别 level: debug, info, notice, warn, error, crit, alert, emerg 3&#xff0c;示例 服务机定义 错误日志存放位置 客户机错误访问 查看错误日志 4&#xff…

DAY9-防病毒AV概述

DNS过滤 URL过滤和DNS过滤对比

广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用

世界移动通信大会2024期间&#xff0c;广和通宣布&#xff1a;5G智能模组SC171除支持Android操作系统外&#xff0c;还兼容Linux和Windows系统&#xff0c;帮助更多智能终端客户快速迭代产品&#xff0c;拓宽智能化应用覆盖范围。 广和通SC171系列基于高通QCM6490物联网解决方案…

oracle with check option 学习

with check option保证了通过视图进行的修改&#xff0c;必须也能通过该视图看到修改后的结果&#xff1b; 你插入&#xff0c;那么插入这条记录在刷新视图后必须可以看到&#xff1b; 如果修改&#xff0c;修改完的结果也必须能通过该视图看到&#xff1b; scott登录了以后创…

【Java程序设计】【C00320】基于Springboot的招生宣传管理系统(有论文)

基于Springboot的招生宣传管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的招生宣传管理系统&#xff0c;本系统有管理员以及招生人员二种角色&#xff1b; 前台&#xff1a;首页、专业介绍、师资力量、联…

Spring Boot项目中如何上传头像?

在我们常见的各大App中&#xff0c;或多或少我们都见过上传头像的功能吧&#xff1f;&#xff1f; 但是在Spring Boot项目中如何上传头像呢&#xff1f; 上传头像主要用到RequestPart注解 来看一下小编的代码吧&#xff01; RestController RequestMapping("/param"…