栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > C/C++/C#

AtCoder Beginner Contest 251 题解 ABC251 [A-H]

C/C++/C# 更新时间:发布时间: 百科书网 趣学号
本场次:AtCoder Beginner Contest 251 (ABC251)   时间:2022-05-14    20:00-21:40 难度:低 总体情况:这次 A-F 较水(不过D题不是很好想,但想明白会非常非常简单!)

欢迎各位讨论,可以私信或评论其他的做法,欢迎

上一篇:ABC250 下面正式题解: A题:

题意:给定字符串(长度1-3),将其重复输出直到输出6个字符,求输出。

难度:入门

近几次最简单的A题,看代码:

//AT251A 22-05-14/16
#include 
using namespace std;

int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	string s,ans;
	cin>>s;
	while (ans.length()<6) ans+=s;
	cout<
B题:

难度:入门

模拟题,主要注意判重,其他枚举+模拟,代码:

//AT251AB 22-05-14/16
#include 
using namespace std;
bool vis[1000001];
int a[305];

int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n,w,s=0;
	cin>>n>>w;
	for (int i=1;i<=n;i++) cin>>a[i];
	int ans=0;
	for (int i=1;i<=n;i++)
	{
		if (a[i]<=w && vis[a[i]]==0) vis[a[i]]=1,ans++;
		for (int j=i+1;j<=n;j++)
		{ //下面模拟去重
			if (a[i]+a[j]<=w && vis[a[i]+a[j]]==0) vis[a[i]+a[j]]=1,ans++;
			for (int k=j+1;k<=n;k++)
			{
				if (a[i]+a[j]+a[k]<=w && vis[a[i]+a[j]+a[k]]==0) vis[a[i]+a[j]+a[k]]=1,ans++;	
			}
		}
	}
	cout<
C题:

难度:普及-

这题记得使用set来标记,其他也是模拟,难度不高。

关于set,大家可以参考此博客:https://blog.csdn.net/sevenjoin/article/details/81908754

代码:

//AT251C 22-05-14/16
#include 
using namespace std;

int n,t[100001];
string s;

int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	set se;
	int ans=0,mx=-2147483648;
	for (int i=1;i<=n;i++)
	{
		int x;
		cin>>s>>x;
		if (se.count(s)) continue;
		se.insert(s);
		if (x>mx) mx=x,ans=i;
	}
	cout<
D题:

难度:普及 / 提高-

题目简述:给定一数 W,求出一个数列,使得其中的1-3个数的和,恰为1-N的和。

先看数据范围: , 

这说明,1,2,3,4,5……这种方法肯定不行。(要不然不就太简单了嘛)

不如这样,我们先忽略  这个条件,我想基本上大家都是能想到二进制吧。

因为每个数的二进制表示法就代表其选择哪些元素相加。

那么现在的问题在于,必须最多只能有3个元素相加,

那么我们是不是可以不使用二进制了呢,使用其他进制?

所以我们再看数据范围:

,所以用100进制表示

因此就是:1, 2, 3, 4, 5, 6......, 99, 100, 200, 300, 400......, 9900, 10000, 20000, 30000......, 1000000

代码(超短):

//AT251D 22-05-14/16
#include 
using namespace std;

int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin>>n;
	cout<<"298"< 

==================稍=后=更=新=====================

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/889420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号