AtCoder Beginner Contest 282

https://atcoder.jp/contests/abc282

A - Generalized ABC

原题链接

题意

给出一个数 \(k\),输出A~Z中的前 \(k\) 个字母。

分析

\(0\)\(k\) 枚举,将 A 加上 \(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\)\(N\)\(N\) 个参与者将参加一个有 \(M\) 个问题的竞赛,编号为 \(1\)\(M\)

对于一个介于 \(1\)\(N\) 之间的整数 \(i\) 和一个介于 \(1\)\(M\) 之间的整数 \(j\),如果 \(S_i\) 的第 \(j\) 个字符是o,则参与者 \(i\) 可以解决问题 \(j\),如果该字符是x,则参与者 \(i\) 不能解决问题 \(j\)

参与者必须两人一组。打印出组成一对能集体解决所有 \(M\) 个问题的参与者的方法数量。

更正式地说,打印满足 \(1\le x< y\le N\) 的整数对 \((x,y)\) 的数目,使得对于 \(1\)\(M\) 之间的任何整数 \(j\),参与者 \(x\) 和参与者 \(y\) 中至少有一个可以解决问题 \(j\)

--感谢搜狗提供的翻译

分析

\(1\)\(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;
}
posted @ 2022-12-20 19:27  PineappleSummer  阅读(93)  评论(0)    收藏  举报