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 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章