Codeforces Round#808 div.1+div.2题解

2023-11-09

视频讲解:BV1ya411S7KF

div.2-A. Difference Operations

题目大意

给定长度为 n n n 的数组 a a a ,可以进行任意次操作,每次操作选择一个整数 i ∈ [ 2 , n ] i\in[2,n] i[2,n] a i a_i ai 修改为 a i − a i − 1 a_i-a_{i-1} aiai1

问能否对所有 i ∈ [ 2 , n ] i\in[2,n] i[2,n] ,使得 a i = 0 a_i=0 ai=0

题解

从左到右考虑。
若使得 a 1 = 0 a_1=0 a1=0 ,则必须 a 0 ∣ a 1 a_0|a_1 a0a1
若使得 a 2 = 0 a_2=0 a2=0 ,则必须存在 k ∈ [ 0 , a 1 a 0 ] k\in[0,\frac{a_1}{a_0}] k[0,a0a1] ,使得 ( a 1 − k ∗ a i ) ∣ a 2 (a_1-k*a_i)|a_2 (a1kai)a2 ,即 a 0 ∣ a 2 a_0|a_2 a0a2
以此类推,必须对于所有 i ∈ [ 2 , n ] i\in[2,n] i[2,n] ,满足 a 0 ∣ a i a_0|a_i a0ai ,才存在合法方案。

参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=110;
int a[MAXN];

int main()
{
	int T,n,i,flag;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		flag=1;
		for(i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			if(a[i]%a[1])
				flag=0;
		}
		if(flag)
			puts("YES");
		else
			puts("NO");
	}
}

div.2-B. Difference of GCDs

题目大意

给定 n ( 1 ≤ n ≤ 1 0 5 ) , l , r ( 1 ≤ l ≤ r ≤ 1 0 9 ) n(1 \leq n \leq 10^5),l,r(1 \leq l \leq r \leq 10^9) n(1n105)l,r(1lr109) ,构造长为 n n n 的数组 a 1 , a 2 , . . . , a n ( l ≤ a i ≤ r ) a_1,a_2,...,a_n(l \leq a_i \leq r) a1,a2,...,an(lair) ,使得 g c d ( i , a i ) gcd(i,a_i) gcd(i,ai) 均不同。

题解

注意到 g c d ( i , a i ) ∈ [ 1 , i ] gcd(i,a_i)\in[1,i] gcd(i,ai)[1,i] ,因此若使得 g c d ( i , a i ) gcd(i,a_i) gcd(i,ai) 均不同,则必须 g c d ( i , a i ) = i gcd(i,a_i)=i gcd(i,ai)=i ,即 i ∣ a i i|a_i iai

因此对于每个 i i i ,在 [ l , r ] [l,r] [l,r] 区间内寻找是否存在 i i i 的倍数即可。

参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=100100;
int a[MAXN];

int main()
{
	int T,n,l,r,i,flag;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d%d",&n,&l,&r);
		flag=1;
		for(i=1;i<=n;i++)
		{
			a[i]=r/i*i;
			if(a[i]<l)
			{
				flag=0;
				break;
			}
		}
		if(!flag)
			puts("NO");
		else
		{
			puts("YES");
			for(i=1;i<=n;i++)
				printf("%d ",a[i]);
			puts("");
		}
	}
}

div.1-A/div.2-C. Doremy’s IQ

题目大意

Doremy有 n n n 场考试,第 i i i 场考试只能在第 i i i 天进行,难度为 a i a_i ai 。初始IQ为 q ( 1 ≤ q ≤ 1 0 9 ) q(1 \leq q \leq 10^9) q(1q109) ,每场考试可以选择参加或不参加。 q > 0 q>0 q>0 时才能参加考试,若参加,则会产生以下影响:

  • a i > q a_i>q ai>q ,则 q q q 减少 1 1 1
  • 否则不变

求最多可以参加的考试数。

题解

由于不论 a i a_i ai 多少,只要 a i > q a_i>q ai>q 都会使得 q q q 减少 1 1 1 ,因此贪心考虑,将降智考试全部排在最后即可。

可以简单证明,将一个降智考试从早调整到晚后,必定会产生不更差的结果。

参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=100100;
int a[MAXN],ans[MAXN];

int main()
{
	int T,n,q,i,now;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&n,&q);
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);
		memset(ans,0,sizeof(int)*(n+5));
		now=0;
		for(i=n;i>=1&&now<q;i--)
		{
			ans[i]=1;
			if(now<a[i])
				now++;
		}
		for(i;i>=1;i--)
		{
			if(a[i]<=q)
				ans[i]=1;
		}
		for(i=1;i<=n;i++)
			printf("%d",ans[i]);
		puts("");
	}
}

div.1-B/div.2-D. Difference Array

题目大意

初始给定包含 n n n 个非负整数的数组 a a a ,保证从小到大排列。

每次操作生成一个新的数组 b i = a i + 1 − a i b_i=a_{i+1}-a_i bi=ai+1ai ,并从小到大排列,然后替换掉原有的 a a a

n − 1 n-1 n1 次操作后,最终剩下的一个数是多少。

题解

如果没有排列操作,那么是一个组合数问题。

有排列操作的情况下,会发现很容易生成 0 0 0 。在排列后,这些 0 0 0 都会移动到首部,可以想办法对其快速处理。

考虑序列
{ 0 , 0 , . . . , 0 ⏟ m , x 1 , x 2 , x 3 , . . . } \{\begin{matrix}\underbrace{0,0,...,0}\\m\end{matrix},x_1,x_2,x_3,...\} { 0,0,...,0m,x1,x2,x3,...}

进行一次差分操作后,在排列前,得到

{ 0 , 0 , . . . , 0 ⏟ m − 1 , x 1 , x 2 − x 1 , x 3 − x 2 , . . . } \{\begin{matrix}\underbrace{0,0,...,0}\\m-1\end{matrix},x_1,x_2-x_1,x_3-x_2,...\} { 0,0,...,0m1,x1,x2x1,x3x2,...}

因此这些 0 0 0 采用一个计数器维护即可,不直接参与计算。
当序列中存在 0 0 0 时,在一次操作后, 0 0 0 的数量减 1 1 1 ,并且加入一个 x 1 x_1 x1
需要注意的是,在之后得到的 x i + 1 − x i x_{i+1}-x_i xi+1xi 中,可能也会出现 0 0 0 ,统计这些新生成的 0 0 0 ,在最后加入到新序列中。

新旧序列可以采用滚动的优先队列维护。

由于 a i ≤ M = 5 ⋅ 1 0 5 a_i\leq M=5 \cdot 10^5 aiM=5105 ,在一次操作后,最多得到 M \sqrt{M} M 个不同的数。
如果有相同的数,则在下次操作时,会得到 0 0 0
以此类推,每轮不同的数之和不超过 M 1 2 + M 1 4 + M 1 8 + . . . + 1 M^\frac{1}{2}+M^\frac{1}{4}+M^\frac{1}{8}+...+1 M21+M41+M81+...+1 ,总复杂度不超过 O ( N + M log ⁡ ( log ⁡ ( M ) ) ) O(N+\sqrt{M} \log(\log(M))) O(N+M log(log(M)))
更严谨的复杂度证明,可以看thematdev的评论

参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=100100;
priority_queue<int> q[2];

int main()
{
	int T,n,i,x,now,bef,zero,tmp,tmpzero;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		while(!q[0].empty())
			q[0].pop();
		zero=0;
		for(i=1;i<=n;i++)
		{
			scanf("%d",&x);
			if(x)
				q[0].push(x);
			else
				zero++;
		}
		now=0;
		while(q[now].size()>1)
		{
			while(!q[now^1].empty())
				q[now^1].pop();
			bef=q[now].top();
			q[now].pop();
			tmpzero=0;
			while(q[now].size())
			{
				tmp=q[now].top();
				q[now].pop();
				if(bef-tmp)
					q[now^1].push(bef-tmp);
				else
					tmpzero++;
				bef=tmp;
			}
			now^=1;
			if(zero)
			{
				zero--;
				q[now].push(bef);
			}
			zero+=tmpzero;
		}
		if(q[now].size())
			printf("%d\n",q[now].top());
		else
			printf("0\n");
	}
}

div.1-C/div.2-E. DFS Trees

题目大意

有一个错误的最小生成树算法,伪代码为

vis := an array of length n
s := a set of edges

function dfs(u):
    vis[u] := true
    iterate through each edge (u, v) in the order from smallest to largest edge weight
        if vis[v] = false
            add edge (u, v) into the set (s)
            dfs(v)

function findMST(u):
    reset all elements of (vis) to false
    reset the edge set (s) to empty
    dfs(u)
    return the edge set (s)

分别判断调用 f i n d M S T ( 1 ) , f i n d M S T ( 2 ) , . . . , f i n d M S T ( n ) findMST(1),findMST(2),...,findMST(n) findMST(1),findMST(2),...,findMST(n) 后,能否得到正确的最小生成树。

题解

首先由于每条边权值不同,因此最小生成树是唯一的。

以最小生成树为基础,若边 ( u , v ) (u,v) (u,v) 不在最小生成树上,则 u u u v v v 的链(不包含 u , v u,v u,v),及链上节点的分支子树上的点作为起点,会得到一个选择了边 ( u , v ) (u,v) (u,v) 的错误最小生成树。

只有当起点在 u , v u,v u,v 及其子树内,才会得到不选择边 ( u , v ) (u,v) (u,v) 的生成树(但也不一定是正确的)。

对于每条不在MST中的边,筛选掉非法的节点即可。

采用LCA+树上差分可以在 O ( n log ⁡ ( n ) ) O(n\log(n)) O(nlog(n)) 复杂度内实现。
或者某些神奇的dfs写法,可以在 O ( n ) O(n) O(n) 复杂度内实现。

参考代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MAXN=200200;
const int MAXM=20;
int fa[MAXN],dep[MAXN],pa[MAXN][MAXM],a[MAXN];
char ans[MAXN];
vector<int> e[MAXN];
pair<int,int> err[MAXN];

int findfa(int x)
{
	if(fa[x]==x)
		return x;
	return fa[x]=findfa(fa[x]);
}

void dfs(int x,int p)
{
	pa[x][0]=p;
	for(int j=1;(1<<j)<=dep[x];j++)
		pa[x][j]=pa[pa[x][j-1]][j-1];
	for(int i=0;i<e[x].size();i++)
	{
		int son=e[x][i];
		if(son==p)
			continue;
		dep[son]=dep[x]+1;
		dfs(son,x);
	}
}

int jump(int x,int step)
{
	for(int j=MAXM-1;j>=0;j--)
	{
		if((1<<j)&step)
			x=pa[x][j];
	}
	return x;
}

int lca(int x,int y)
{
	if(dep[x]<dep[y])
		swap(x,y);
	x=jump(x,dep[x]-dep[y]);
	if(x==y)
		return x;
	for(int j=MAXM-1;j>=0;j--)
	{
		if(pa[x][j]!=pa[y][j])
		{
			x=pa[x][j];
			y=pa[y][j];
		}
	}
	return pa[x][0];
}

void pushDown(int x,int p)
{
	if(a[x])
		ans[x]='0';
	else
		ans[x]='1';
	for(int i=0;i<e[x].size();i++)
	{
		int son=e[x][i];
		if(son==p)
			continue;
		a[son]+=a[x];
		pushDown(son,x);
	}
}

int main()
{
	int n,m,i,cnt=0,u,v,root,lc;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		fa[i]=i;
	while(m--)
	{
		scanf("%d%d",&u,&v);
		if(findfa(u)==findfa(v))
		{
			err[cnt++]=make_pair(u,v);
		}
		else
		{
			fa[findfa(u)]=findfa(v);
			e[u].push_back(v);
			e[v].push_back(u);
		}
	}
	dfs(root=1,0);
	for(i=0;i<cnt;i++)
	{
		u=err[i].first;
		v=err[i].second;
		if(dep[u]<dep[v])
			swap(u,v);
		lc=lca(u,v);
		if(lc==v)
		{
			a[jump(u,dep[u]-dep[v]-1)]++;
			a[u]--;
		}
		else
		{
			a[root]++;
			a[u]--;
			a[v]--;
		}
	}
	pushDown(root,0);
	ans[n+1]=0;
	printf("%s\n",ans+1);
}

div.1-D/div.2-F. Partial Virtual Trees

题目大意

给定包含 n ( 2 ≤ n ≤ 2000 ) n(2 \leq n \leq 2000) n(2n2000) 个点的树,根节点为 1 1 1
树上的顶点构成集合 U = { 1 , 2 , 3 , . . . , n } U=\{1,2,3,...,n\} U={1,2,3,...,n}

每次操作,选择 U U U 的一个“部分虚树” T T T ,然后替换掉原有的 U U U

  • T T T U U U 的“部分虚树”,当且仅当 T ⊂ U , T ≠ U T \subset U,T\neq U TUT=U ,且 ∀ i , j ∈ T , L C A ( i , j ) ∈ T \forall i,j\in T,LCA(i,j) \in T i,jT,LCA(i,j)T

求对于 [ 1 , n − 1 ] [1,n-1] [1,n1] 范围内每个整数 k k k ,恰好 k k k 次操作后,有多少种不同的方法使得 U = { 1 } U=\{1\} U={1}

答案对 p ( 1 0 8 ≤ p ≤ 1 0 9 + 9 ) p(10^8 \leq p \leq 10^9+9) p(108p109+9) 取模。

题解

参考官方题解的做法

假设忽略 T ≠ U T\neq U T=U 的条件,即 T ⊆ U T\subseteq U TU ,每次操作可以不删除任何点,以便进行DP转移。

d p x , i dp_{x,i} dpx,i 表示将 x x x 节点为根的子树在恰好 i i i 步后全部被删除的方案数。注意最后删除的节点不一定是 x x x 节点。

S u m x , i Sum_{x,i} Sumx,i 表示将 x x x 节点为根的子树 i i i 步之内全部被删除的方案数。有
S u m x , i = ∑ j = 1 i d p x , i Sum_{x,i}=\sum_{j=1}^{i}{dp_{x,i}} Sumx,i=j=1idpx,i

如果 x x x 最后在第 i i i 步才被删除,则方案数为
D x , i = ∏ u ∈ S o n x S u m u , i D_{x,i}=\prod_{u\in Son_x}{Sum_{u,i}} Dx,i=uSonxSumu,i

如果 x x x 在之前就被删除,考虑枚举最后个被删除的点在 u ∈ S o n x u\in Son_x uSonx 为根的子树中,此时其他儿子为根的子树中的点,必定在 x x x 之前被删除,枚举 x x x 在第 j j j 次操作后被删除。方案数为

∑ u ∈ S o n x d p u , i ∑ j = 1 i − 1 ∏ v ∈ S o n x , v ≠ x S u m v , j = ∑ u ∈ S o n x d p u , i ∑ j = 1 i − 1 D x , j S u m u , j \begin{align*} &\sum_{u\in Son_x}{dp_{u,i}\sum_{j=1}^{i-1}{\prod_{v\in Son_x,v \neq x}{Sum_{v,j}}}}\\ &=\sum_{u\in Son_x}{dp_{u,i}\sum_{j=1}^{i-1}{\frac{D_{x,j}}{Sum_{u,j}}}} \end{align*} uSonxdpu,ij=1i1vSonx,v=xSumv,j=uSonxdpu,ij=1i1Sumu,jDx,j

综上,得到DP转移式

d p x , i = D x , i + ∑ u ∈ S o n x d p u , i ∑ j = 1 i − 1 D x , j S u m u , j dp_{x,i}=D_{x,i}+\sum_{u\in Son_x}{dp_{u,i}\sum_{j=1}^{i-1}{\frac{D_{x,j}}{Sum_{u,j}}}} dpx,i=Dx,i+uSonxdpu,ij=1i1Sumu,jDx,j

特别的,对于根节点 1 1 1 ,由于必须 1 1 1 号点最后删除,因此转移式为 d p 1 , i = D 1 , i dp_{1,i}=D_{1,i} dp1,i=D1,i

以上可以用树形DP在 O ( n 2 ) O(n^2) O(n2) 复杂度内求解。

但是 d p 1 , k dp_{1,k} dp1,k 并不是最终解法,因为一开始忽略了 T ≠ U T\neq U T=U 的条件,即每次操作可以不删除任何点。

a n s i ans_i ansi 表示真正的答案,考虑枚举 d p 1 , i dp_{1,i} dp1,i 中,共有 j j j 步是合法的, i − j i-j ij 步是不删除任何点的方案。
d p 1 , i = ∑ j = 0 i C i j a n s j dp_{1,i}=\sum_{j=0}^i{C_i^j}ans_j dp1,i=j=0iCijansj

变换下,则有
a n s i = d p 1 , i − ∑ j = 0 i − 1 C i j a n s j ans_i=dp_{1,i}-\sum_{j=0}^{i-1}C_i^j ans_j ansi=dp1,ij=0i1Cijansj

可以在 O ( n 2 ) O(n^2) O(n2) 复杂度内求解出所有的 a n s i ans_i ansi

参考代码来自官方题解

参考代码

#include <bits/stdc++.h>
 
#define debug(...) fprintf(stderr ,__VA_ARGS__)
#define __FILE(x)\
	freopen(#x".in" ,"r" ,stdin);\
	freopen(#x".out" ,"w" ,stdout)
#define LL long long
 
const int MX = 2000 + 23;
 
LL MOD;
 
using namespace std;
 
int read(){
	char k = getchar(); int x = 0;
	while(k < '0' || k > '9') k = getchar();
	while(k >= '0' && k <= '9') x = x * 10 + k - '0' ,k = getchar();
	return x;
}
 
int head[MX] ,tot = 1;
struct edge{
	int node ,next;
}h[MX << 1];
void addedge(int u ,int v ,int flg = 1){
	// if(flg) debug("%d %d\n" ,u ,v);
	h[++tot] = (edge){v ,head[u]} ,head[u] = tot;
	if(flg) addedge(v ,u ,false);
}
 
int n ,dp[MX][MX] ,S[MX][MX] ,suf[MX][MX] ,pre[MX][MX];
void dapai(int x ,int f){
	int ch = 0;
	for(int i = head[x] ,d ; i ; i = h[i].next){
		if((d = h[i].node) == f) continue;
		dapai(d ,x);
	}
	for(int i = head[x] ,d ; i ; i = h[i].next){
		if((d = h[i].node) == f) continue;
		++ch;
		for(int j = 0 ; j <= n ; ++j){
			suf[ch][j] = pre[ch][j] = S[d][j];
		}
	}
 
	if(!ch){
		for(int i = 1 ; i <= n ; ++i){
			dp[x][i] = 1 % MOD;
			S[x][i] = (S[x][i - 1] + dp[x][i]) % MOD;
		}
		return ;
	}
	for(int j = 0 ; j <= n ; ++j){
		for(int i = 1 ; i <= ch ; ++i)
			pre[i][j] = 1LL * pre[i][j] * pre[i - 1][j] % MOD;
		for(int i = ch ; i >= 1 ; --i)
			suf[i][j] = 1LL * suf[i][j] * suf[i + 1][j] % MOD;
	}
	for(int i = 1 ; i <= n ; ++i) dp[x][i] = pre[ch][i];
	if(x != 1) for(int i = head[x] ,d ,c = 0 ; i ; i = h[i].next){
		if((d = h[i].node) == f) continue;
		++c;
		LL sum = 0;
		for(int mx = 1 ; mx <= n ; ++mx){
			dp[x][mx] = (dp[x][mx] + sum * dp[d][mx]) % MOD;
			sum = (sum + 1LL * pre[c - 1][mx] * suf[c + 1][mx]) % MOD;
		}
	}
	for(int i = 1 ; i <= ch ; ++i)
		for(int j = 0 ; j <= n ; ++j)
			suf[i][j] = pre[i][j] = 1 % MOD;
	for(int i = 1 ; i <= n ; ++i)
		S[x][i] = (S[x][i - 1] + dp[x][i]) % MOD;
}
 
int C[MX][MX];
void init(){
	for(int i = 0 ; i < MX ; ++i) C[i][0] = 1 % MOD;
	for(int i = 1 ; i < MX ; ++i)
		for(int j = 1 ; j < MX ; ++j)
			C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % MOD;
}
 
int main(){
    
    n = read() ,MOD = read();
	init();
	
	for(int i = 0 ; i < MX ; ++i)
		for(int j = 0 ; j < MX ; ++j)
			suf[i][j] = pre[i][j] = 1 % MOD;
			
	
	 
	for(int i = 2 ; i <= n ; ++i){
		addedge(read() ,read());
		// addedge(rand() % (i - 1) + 1 ,i);
	}
	
	dapai(1 ,0);
	
	for(int i = 1 ; i < n ; ++i){
		LL ans = 0;
		for(int j = 1 ; j <= i ; ++j){
			ans += ((i - j) & 1 ? -1LL : 1LL) * C[i][j] * dp[1][j] % MOD;
		}
		ans = (ans % MOD + MOD) % MOD;
		printf("%lld%c" ,ans ," \n"[i == n]);
	}
	return 0;
}

div.1-E. Replace

咕了

div.1-F. Bugaboo

咕了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeforces Round#808 div.1+div.2题解 的相关文章

  • rabbitmq(四)、消息丢失问题

    丢失消息的三种情况 生产者弄丢了数据 RabbitMQ 弄丢了数据 消费端弄丢了数据 一 生产者弄丢了数据 生产者将数据发送到 RabbitMQ 的时候 可能数据就在半路给搞丢了 因为网络问题啥的 都有可能 方法一 此时可以选择用 Rabb
  • linux cp无法创建一般文件夹,cp: 无法创建普通文件 : 文件已存在

    背景 碰到一个偶现的编译出错问题 如图 报错的信息是 cp 无法创建普通文件 xxx 文件已存在 排查原因 看了下 Makefile 这句非常简单 就是 cp xxx xxx 而已 本身没什么问题 那再结合上下文出现的打印 一个异常之处就是

随机推荐

  • Jupyter快捷键-查看并设置

    1 快捷键 Jupyter 笔记本有两种不同的键盘输入模式 编辑模式允许您将代码或文本输入到一个单元格中 并通过一个绿色边框的单元格来表示 命令模式将键盘与笔记本级命令绑定在一起 并通过一个灰框 左边距蓝色的单元格显示 命令行模式 按 Es
  • 《魔童降世》影评——从封神演义谈到宿命

    今日看完魔童降世中的哪吒 不得不称赞这次改编很精妙 也不得不说编剧的三观很正 哪吒在我们大多数人的心中可能是纯真无害的小孩子 生来便拥有法宝乾坤圈和混天绫 得遇名师太乙真人 修得神通三头六臂 坚持正义 帮助武王伐纣 灭石叽 最后肉身 莲花
  • ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory

    安装OpenBLAS的步骤 1 下载最新的openblas git clone https github com xianyi OpenBLAS git 没有安装git 先安装git CentOS安装git yum install git
  • MyBatisPlus的@TableId注解来实现自增序列id自动插入的功能

    写法 TableId value 数据库主键字段 type IdType 六种类型之一 例如 TableId value user id type IdType AUTO 1 ASSIGN ID 雪花算法 如果不设置 type 值 默认则使
  • Flink_03_Window(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 keyBy不仅是为了分组 同时还是为了能把数据分布到不同分区进行并行
  • JavaScript详解

    目录 一 什么是JavaScript 二 JavaScript的引入方式 三 JavaScript的基础语法 3 1 书写语法 3 2 输出语句 3 3 变量 3 4 数据类型 3 5 运算符 3 6 流程控制语句 3 7 函数 四 Jav
  • 笔记本屏幕忽亮忽暗解决方法大全,总有一款适合你

    笔记本屏幕忽亮忽暗解决方法大全 导言 傻逼Intel的傻逼设计 其原本目的是想在屏幕显示暗的东西时能有更高的暗部表现 或者 顺便省电 实际上眼睛导致干涩流泪 解决方法一 在Intel图形设置关闭Intel节能技术 解决方法二 在intel控
  • Element按需引入

    ElementUI网址 https element eleme cn zh CN component quickstart 1 1 安装 babel plugin component npm install babel plugin com
  • Windows网络守门人UserLock教程:如何分配登录时间配额

    UserLock是您的Windows网络守门人 它可以轻松实现有效的Windows和Active Directory网络用户访问控制策略 并严格执行 在UserLock中我们可以定义时间配额规则以限制所选会话类型的周期性连接时间 接下来 我
  • 法将数据写入传输连接: 你的主机中的软件中止了一个已建立的连接_LabVIEW_基于Network Steams 的无损传输技术...

    LabVIEW提供了用于创建分布式应用程序的多种技术的访问权限 LabVIEW 2010中引入的网络流是在这些应用程序之间流传输数据的理想方法 使用网络流 您可以轻松地在网络上或同一台计算机上共享数据 本文是对网络流进行介绍 并讨论了其功能
  • 【通俗易懂】vue中loading功能实现方法

    效果图 我是点击后让他出现loading效果 上代码
  • STM32MP157 AP6236 WiFi蓝牙模块

    STM32MP157 AP6236 WiFi蓝牙模块 1 介绍 2 修改设备树 3 配置Linux内核 3 1 配置支持WiFi设备 3 2 配置支持IEEE 802 11 3 3 配置支持蓝牙 4 配置Buildroot 5 板子配置 6
  • Vue + axios + vant 封装公共请求

    import axios from axios 引入axios import router from router 引入路由 import Toast from vant 引入提示层 export function post obj 调用时
  • 线程的声明周期

    要想实现多线程 必须在主线程中创建新的线程对象 JAVA中使用Thread类及其子类的对象来表示线程 在它的完整的生命周期一般要包括5类 新建 当一个Thread类或子类的对象被声明并创建时 新生的线程对象就处于新建状态 就绪 处于新建状态
  • Matlab读取csv文件csvread函数的使用

    方法一 M csvread FILENAME 读取逗号分隔值格式的文件名 结果直接返回给M 因此 文件只能包含数值 方法二 M csvread FILENAME R C 从逗号分隔值格式的文件中读取数据 从R行和C列开始 R和C从零开始 因
  • PHP cURL获取HTTP响应头

    前言 平时做开发时 经常会用到PHP的cURL扩展 用于请求外部HTTP接口 大多数情况下 我们只需要获取接口返回的响应体 HTTP response body 但如果我们想获取响应头 HTTP response header 那可以怎么做
  • Mac-解决程序包javafx.util不存在

    环境 macos m1芯片 IDEA jdk zulu 8 jdk 1 8 0 322 支持m1芯片的 解决方式 1 更换jdk版本 不使用支持m1芯片的jdk 到官网 链接下载macos的jdk1 8 0 333 且下载成功之后不需要配置
  • Eclipse调整XML源代码文件字体大小

    Eclipse调整XML源代码文件字体大小 Window gt Preferences gt General gt Appearance gt Colors and Fonts gt Basic gt Text Font 点击Edit 设置
  • 简单的书签服务LinkDing

    今天是上海全域静态管理的第 29 天 周三抗原 周四老苏刚做完核酸 居委突然通知后面的不做了 大家一阵慌乱 结果后来又通知继续 这是要闹哪样 据说是怕系统崩溃 周五终于休息了 根据居委会的通告 周二的核酸又发现一管异常 希望昨天的复检正常吧
  • Codeforces Round#808 div.1+div.2题解

    视频讲解 BV1ya411S7KF div 2 A Difference Operations 题目大意 给定长度为 n n n 的数组 a a a 可以进行任意次操作 每次操作选择一个整数