Acwing第 53 场周赛完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 53 场周赛完结相关的知识,希望对你有一定的参考价值。
https://www.acwing.com/activity/content/1853/
考研中,目前每周只打周赛。其他时间不太刷算法题。
目录
4425. 改变数字
#include<bits/stdc++.h>
using namespace std;
int main(void)
string s; cin>>s;
int w=min(s[0]-'0',9-(s[0]-'0'));
if(w==0) cout<<9;
else cout<<w;
for(int i=1;i<s.size();i++) cout<<min(s[i]-'0',9-(s[i]-'0'));
return 0;
4426. 整除子串【思维】
对于这种题就是打表找规律。发现被4整除的数的结尾是啥。然后根据规律计数即可。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long int LL;
int n,m,t;
map<string,int>mp;
int main(void)
string s; cin>>s;
for(int i=0;i<=100;i++)
string temp=to_string(i);
while(temp.size()<2) temp="0"+temp;
if(i%4==0) mp[temp]=1;
LL ans=0;
for(int i=0;i<s.size();i++)
if(s[i]=='0') ans++;
if(s[i]=='4') ans++;
if(s[i]=='8') ans++;
if(i)
string temp;
temp+=s[i-1];
temp+=s[i];
if(mp[temp]) ans+=i;
cout<<ans;
return 0;
4427. 树中节点和【贪心】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*4+10;
const int inf=0x3f3f3f3f;
typedef long long int LL;
int n,h[N],e[N],ne[N],idx;
int s[N];
LL ans;
void add(int a,int b)
e[idx]=b,ne[idx]=h[a],h[a]=idx++;
void dfs(int u,int deep,int last_s)
if(deep&1)
for(int i=h[u];i!=-1;i=ne[i])
int j=e[i];
dfs(j,deep+1,s[u]);
else
int p=inf;
for(int i=h[u];i!=-1;i=ne[i])
int j=e[i];
dfs(j,deep+1,0);
p=min(p,s[j]-last_s);
if(p<0) ans=-1e18;
for(int i=h[u];i!=-1;i=ne[i])
int j=e[i];
ans+=s[j]-last_s-p;
if(p!=inf) ans+=p;
int main(void)
cin>>n;
memset(h,-1,sizeof h);
for(int i=2;i<=n;i++)
int p; cin>>p;
add(p,i);
for(int i=1;i<=n;i++) cin>>s[i];
ans=s[1];
dfs(1,1,0);
if(ans<0) ans=-1;
cout<<ans;
return 0;
以上是关于Acwing第 53 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章