Acwing第 58 场周赛完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 58 场周赛完结相关的知识,希望对你有一定的参考价值。

没打,赛后vp了一下题目好简单。
15min做完
https://www.acwing.com/activity/content/competition/problem_list/1994/、

目录

4488. 寻找1【签到】

#include<bits/stdc++.h> 
using namespace std;
int main(void)

	int n,x,flag=0;
	cin>>n;
	while(n--) 
	
		cin>>x;
		if(x) flag=1;
	
	if(flag) puts("YES");
	else puts("NO");
	return 0;

4489. 最长子序列【贪心 / 双指针】

#include<bits/stdc++.h> 
using namespace std;
const int N=1e5*3+10;
int n,a[N]; 
int main(void)

	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	int cnt=1,last=1,ans=1;
	for(int i=2;i<=n;i++)
	
		if(a[i]<=a[last]*2) cnt++,last=i;
		else last=i,cnt=1;
		ans=max(ans,cnt);
	
	cout<<ans;
	return 0;

4490. 染色【思维】


画图,你会发现只要其颜色和父亲颜色不一样就加1.

#include<bits/stdc++.h> 
using namespace std;
const int N=1e5*3+10;
int h[N],e[N],ne[N],idx;
int w[N],n,cnt=1;
void add(int a,int b)

	e[idx]=b,ne[idx]=h[a],h[a]=idx++;

void dfs(int u,int fa)

	if(fa!=-1&&w[u]!=w[fa]) cnt++;
	for(int i=h[u];i!=-1;i=ne[i])
	
		int j=e[i];
		if(j==fa) continue;
		dfs(j,u);
	

int main(void)

	memset(h,-1,sizeof h);
	cin>>n;
	for(int i=2;i<=n;i++)
	
		int x; cin>>x;
		add(x,i),add(i,x);
	
	for(int i=1;i<=n;i++) cin>>w[i];
	dfs(1,-1);
	cout<<cnt; 
	return 0;

以上是关于Acwing第 58 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 58 场周赛完结

Acwing第 53 场周赛完结

Acwing第 31 场周赛完结

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结