Acwing第 36 场周赛完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 36 场周赛完结相关的知识,希望对你有一定的参考价值。
目录
4215. 处理字符串
https://www.acwing.com/problem/content/4218/
#include<bits/stdc++.h>
#define YES puts("YES");
#define Yes puts("Yes");
#define yes puts("yes");
#define NO puts("NO");
#define No puts("No");
#define no puts("no");
using namespace std;
typedef long long int LL;
typedef pair<int,int> PII;
const int N=1e5*2+10;
const int mod=1e9+7;
int n,m,t;
int a[N];
map<char,int>mp;
int main(void)
string s; cin>>s;
string ans;
mp['a']=1,mp['e']=1,mp['i']=1;
mp['o']=1,mp['u']=1,mp['y']=1;
for(int i=0;i<s.size();i++)
s[i]=tolower(s[i]);
if(mp[s[i]]) continue;
ans+='.';
ans+=s[i];
cout<<ans;
return 0;
4216. 图中的环【判环】
https://www.acwing.com/problem/content/4219/
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int p[N],n,m;
int find(int x)
if(x!=p[x]) p[x]=find(p[x]);
return p[x];
int main(void)
cin>>n>>m;
for(int i=1;i<=n;i++) p[i]=i;
int cnt=0;
while(m--)
int a,b; cin>>a>>b;
if(find(a)==find(b)) cnt++;//环
p[find(a)]=find(b);
map<int,int>mp;//统计有几个不同祖宗的点
for(int i=1;i<=n;i++) mp[find(i)]++;
if(mp.size()==1&&cnt==1) puts("YES");//没有孤点且只有一个环
else puts("NO");
return 0;
4217. 机器人移动【二分】
https://www.acwing.com/problem/content/4220/
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int U[N],D[N],L[N],R[N],n,a,b;
string s;
bool solve(int i,int j,int sum)
int u=U[i-1]+U[n]-U[j];
int d=D[i-1]+D[n]-D[j];
int l=L[i-1]+L[n]-L[j];
int r=R[i-1]+R[n]-R[j];
int x=0,y=0;
y+=u,y-=d,x-=l,x+=r;
sum-=abs(x-a);
sum-=abs(y-b);
if(sum>=0&&sum%2==0) return true;
return false;
bool check(int len)
for(int i=1;i+len-1<=n;i++)
int j=i+len-1;
if(solve(i,j,len)) return true;
return false;
int main(void)
cin>>n>>s>>a>>b;
s="0"+s;
for(int i=1;i<s.size();i++)
U[i]=U[i-1],D[i]=D[i-1],L[i]=L[i-1],R[i]=R[i-1];
if(s[i]=='U') U[i]++;
if(s[i]=='D') D[i]++;
if(s[i]=='L') L[i]++;
if(s[i]=='R') R[i]++;
if(abs(a)+abs(b)>n||(n-abs(a)-abs(b))%2)
puts("-1");
return 0;
int l=0,r=n;
while(l<r)
int mid=l+r>>1;
if(check(mid)) r=mid;
else l=mid+1;
cout<<l<<endl;
return 0;
以上是关于Acwing第 36 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章