首页 > 其他分享 >AtCoder Beginner Contest 277 A~C

AtCoder Beginner Contest 277 A~C

时间:2022-11-19 21:38:31浏览次数:70  
标签:AtCoder 题意 Beginner int text ans flag && 277

本文同步发表于洛谷
A. https://www.luogu.com.cn/blog/Alex-ZJY/solution-at-abc277-a
B. https://www.luogu.com.cn/blog/Alex-ZJY/solution-at-abc277-b
C. https://www.luogu.com.cn/paste/orn0vf27

A.^{-1}

\(\text{题目传送门}\)

\(\text{更好的阅读体验}\)

题意

给定一个长度为 \(n\) 的排列 \(P\),以及一个数字 \(X\)(\(1 \le X \le n\))。求排列中,第几位的元素为 \(X\)。

分析

依次输入每个数 \(a_i\),如果这个数等于 \(x\),就用 \(ans\) 记录这个数的编号 \(i\),最后输出 \(ans\) 即可。

\(\text{AC code}\)

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,x,ans=0;
    cin>>n>>x;
    for(int i=1;i<=n;i++)
    {
    	int a;
    	cin>>a;
    	if(a==x) ans=i;
	}
	cout<<ans<<endl;
    return 0;
}

B.Playing Cards Validation

\(\text{题目传送门}\)

\(\text{更好的阅读体验}\)

题意

给出 \(n\) 个长度为 \(2\) 的字符串,
要求:

  • 第一个字符必须是HDCS 中的一个;
  • 第二个字符必须是A23456789TJQK中的一个;
  • 没有重复的字符串

符合条件输出Yes,不符合输出No

分析

用 \(flag\) 标记是否符合条件,初值为 \(0\)。

  • 对于前两个条件,用if语句判断即可,不符合将 \(flag\) 标记为 \(1\);
  • 对于第三个条件,可以用map开一个桶,每次判断输入的字符串的桶是否为空,如果为空,将桶变为 \(1\);如果不为空,说明字符串重复了,将 \(flag\) 标记为 \(1\)。

最后判断 \(flag\) 是否为 \(0\),为 \(0\) 输出 Yes,不为 \(0\) 输出 No

\(\text{AC code}\)

#include<bits/stdc++.h>
using namespace std;
map<string,int>a;
int main()
{
	int n;
	string s[55];
	cin>>n;
	bool flag=0;
	for(int i=1;i<=n;i++)
	{
		cin>>s[i];
		if(s[i][0]!='H'&&s[i][0]!='D'&&s[i][0]!='C'&&s[i][0]!='S') flag=1;
		if(s[i][1]!='A'&&s[i][1]!='2'&&s[i][1]!='3'&&s[i][1]!='4'&&s[i][1]!='5'&&s[i][1]!='6'&&s[i][1]!='7'&&s[i][1]!='8'&&s[i][1]!='9'&&s[i][1]!='T'&&s[i][1]!='J'&&s[i][1]!='Q'&&s[i][1]!='K') flag=1;
		if(a[s[i]]==1) flag=1;
		else a[s[i]]=1;
	}
	if(flag==1) cout<<"No"<<endl;
	else cout<<"Yes"<<endl;
	return 0;
}

C.Ladder Takahashi

这道题我不懂,同班大佬给了一个代码,AC了,但是我发现它不符合题意,是错的,所以大家不要抄,只是看看。

#include<bits/stdc++.h>
using namespace std;
struct node
{
	int x,y;
}a[200010];
bool cmp(node a,node b)
{
	return (a.x<b.x||(a.x==b.x&&a.y<b.y));
}
int ans=1;
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		a[i].x=min(x,y);
		a[i].y=max(x,y);
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++)
	{
		if(a[i].x<=ans&&a[i].y>=ans) ans=a[i].y;
	}
	cout<<ans<<endl;
	return 0;
}

我的洛谷号Alex_ZJY,希望大家能认可我,谢谢

给个赞再走呗qwq

标签:AtCoder,题意,Beginner,int,text,ans,flag,&&,277
From: https://www.cnblogs.com/zhujiangyuan/p/16907240.html

相关文章

  • E - Crystal Switches -- ATCODER
    E-CrystalSwitcheshttps://atcoder.jp/contests/abc277/tasks/abc277_e思路做双层图分离。使用虚线连接两个图,表示switch动作。使用双端队列,结合最短路算法,从1出发......
  • Atcoder补题计划
    11.17AtCoderRegularContest151知识点:A:简单题B:计数,并查集补题传送门......
  • AtCoder Regular Contest 151补题
    AtCoderRegularContest151A.EqualHammingDistances简单题,注意下答案需要字典序最小即可#include<bits/stdc++.h>usingnamespacestd;#definerep(i,l,r)for(......
  • ABC277 E~Ex
    E:简单最短路,加一维表示当前是否翻转所有边的状态即可。CodeF:先考虑简化版本,如果\(\left\{A\right\}\)中没有\(0\),如何判定。重新表述一下条件,令\(mn_i,mx_i\)分......
  • ABC277 E~Ex
    E:简单最短路,加一维表示当前是否翻转所有边的状态即可。CodeF:先考虑简化版本,如果\(\left\{A\right\}\)中没有\(0\),如何判定。重新表述一下条件,令\(mn_i,mx_i\)分......
  • 大和証券プログラミングコンテスト2022 Autumn (AtCoder Beginner Contest 277)
    A.^{-1}果然是你ABC的A。//Problem:A-^{-1}//Contest:AtCoder-DaiwaSecuritiesCo.Ltd.ProgrammingContest2022Autumn(AtCoderBeginnerContest27......
  • 大和証券プログラミングコンテスト2022 Autumn (AtCoder Beginner Contest 277)
    A.^{-1}果然是你ABC的A。//Problem:A-^{-1}//Contest:AtCoder-DaiwaSecuritiesCo.Ltd.ProgrammingContest2022Autumn(AtCoderBeginnerContest27......
  • AtCoder Beginner Contest 277 (F,G,Ex)
    之前没细想过OSU那个题,被G薄纱,F也没写完,输麻了懒得放链接,代码可以直接去AtCoder上搜。ID:YunQianQwQF首先求出每列的最大最小值,然后依此排序,如果出现insertion......
  • AtCoder Beginner Contest 277 E // 最短路
    CrystalSwitches题目来源:AtCoderBeginnerContest277E-CrystalSwitches题目链接:E-CrystalSwitches(atcoder.jp)题意给定一个\(N\)个点\(M\)条边的无向图。......
  • D - Takahashi's Solitaire -- ATCODER
    D-Takahashi'sSolitairehttps://atcoder.jp/contests/abc277/tasks/abc277_d 思路先计算所有的输入的和total,将输入列表首先进行排列找到所有连续段和中最大的......