https://atcoder.jp/contests/abc282
A - Generalized ABC
题意
给出一个数
k
k
k,输出A
~Z
中的前
k
k
k 个字母。
分析
从
0
0
0 到
k
k
k 枚举,将 A
加上
i
i
i 输出。
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k;
cin>>k;
for(int i=0;i<k;i++) cout<<char('A'+i);
return 0;
}
B - Let’s Get a Perfect Score
题意
编号为 1 1 1 到 N N N 的 N N N 个参与者将参加一个有 M M M 个问题的竞赛,编号为 1 1 1 到 M M M。
对于一个介于
1
1
1 和
N
N
N 之间的整数
i
i
i 和一个介于
1
1
1 和
M
M
M 之间的整数
j
j
j,如果
S
i
S_i
Si 的第
j
j
j 个字符是o
,则参与者
i
i
i 可以解决问题
j
j
j,如果该字符是x
,则参与者
i
i
i 不能解决问题
j
j
j。
参与者必须两人一组。打印出组成一对能集体解决所有 M M M 个问题的参与者的方法数量。
更正式地说,打印满足 1 ≤ x < y ≤ N 1\le x< y\le N 1≤x<y≤N 的整数对 ( x , y ) (x,y) (x,y) 的数目,使得对于 1 1 1 和 M M M 之间的任何整数 j j j,参与者 x x x 和参与者 y y y 中至少有一个可以解决问题 j j j。
–感谢搜狗提供的翻译
分析
从
1
1
1 到
n
n
n 枚举两个人,然后判断这两个人每道题是否至少有一个o
,最后输出即可。
代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[35][35];
long long ans=0;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
{
for(int i2=i+1;i2<=n;i2++)
{
bool flag=0;
for(int j=1;j<=m;j++)
{
if(a[i][j]!='o'&&a[i2][j]!='o')
{
flag=1;
break;
}
}
if(!flag) ans++;
}
}
cout<<ans<<endl;
return 0;
}
C - String Delimiter
题意
给出一个字符串,将这个字符串中没有被"
括起来的,
变为.
。
分析
由于"
不分左右,所以我们只需要判断每个"
出现次数的奇偶性即可。
- 如果当前出现了奇数个
"
,则说明当前``被"
括起来。 - 如果当前出现了偶数个
"
,则说明当前,
没有被"
括起来。
代码
#include<bits/stdc++.h>
using namespace std;
stack<int>x;
string s;
long long tot=0,n;
int main()
{
// freopen("input.in","r",stdin);
// freopen("output.out","w",stdout);
cin>>n;
getline(cin,s);
getline(cin,s);
for(int i=0;i<s.size();i++)
{
if(s[i]=='"') tot++;
if((tot%2==0)&&s[i]==',') s[i]='.';
}
cout<<s;
return 0;
}