友情链接:AtCoder Beginner Contest 248 题解 Codeforces Round #786 题解
AtCoder Beginner Contest 250 题解
请看完后点个赞,谢谢
A题
方法一:
直接覆盖就可以了,别忘了把第一位变成0
//AT247A 22-04-10
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin>>s;
for (int i=s.length();i>0;i--)
s[i]=s[i-1];
s[0]='0';
cout<<s<<endl;
return 0;
}
方法二:(简单)
//AT247A 22-04-15
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
char a[4];
cin>>a[0]>>a[1]>>a[2]>>a[3];
cout<<"0"<<a[0]<<a[1]<<a[2]<<endl;
return 0;
}
B题
这题只需要判断姓和名是否都与别人重复,如果是,直接输出No,否则继续,
到循环到最后输出Yes
//AT247B 22-04-10
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
string a[105],b[105];
for (int i=1;i<=n;i++) cin>>a[i]>>b[i];
for (int i=1;i<=n;i++)
{
int s1=0,s2=0;
for (int j=1;j<=n;j++)
{
if (a[i]==a[j] || a[i]==b[j]) s1++;
if (b[i]==a[j] || b[i]==b[j]) s2++;
}
if (s1!=1 && s2!=1)
{
cout<<"No"<<endl;return 0;
}
}
cout<<"Yes"<<endl;
return 0;
}
C题
方法一:
循环递归,数据超弱(n<=16)
//AT247C 22-04-10
#include <bits/stdc++.h>
using namespace std;
int n;
int a[17][65537];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n;
memset(a,0,sizeof(a));
a[1][1]=1;
if (n==1)
{
cout<<"1"<<endl;return 0;
}
for (int i=2;i<=n;i++)
{
int x=pow(2,i-1);
for (int j=1;j<=pow(2,i-1)-1;j++)
a[i][j]=a[i-1][j];
a[i][x]=i;
for (int j=1;j<=pow(2,i-1)-1;j++)
a[i][x+j]=a[i-1][j];
}
for (int i=1;i<pow(2,n);i++) cout<<a[n][i]<<" ";
return 0;
}
方