Acwing 第 77 场周赛 ABC(*)
4716. 进球
题目大意:
整场比赛双方一共打进了 n 个进球,进球多的一方将收获最终的胜利。
请你根据进球纪录,判断哪支球队最终获胜。
保证不存在平局。
输入样例1:
1
ABC
输出样例1:
ABC
输入样例2:
5
A
ABA
ABA
A
A
输出样例2:
A
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
{
LL n;
cin>>n;
map<string,LL> mp;
LL maxn=0;
string name="";
for(int i=1;i<=n;i++)
{
string s;
cin>>s;
mp[s]++;
if(mp[s]>maxn)
{
maxn=mp[s];
name=s;
}
}
cout<<name<<endl;
}
return 0;
}
4717. 环形队伍
题目大意:
n 个小朋友围成一圈,有 7 种颜色的帽子(R、O、Y、G、B、I、V),每种颜色的帽子的数量都足够多。
现在,要给每个小朋友都发一个帽子,要求:每种颜色的帽子都至少有一个小朋友戴。任意四个相邻小朋友的帽子颜色都各不相同。
请你提供一种分发帽子的方案。
输入样例1:
8
输出样例1:
ROYGRBIV
输入样例2:
13
输出样例2:
ROYGBIVGBIVYG
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=500200,M=2002;
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
{
LL n;
cin>>n ;
string s="ROYGBIV";
if(n<=7) cout<<s.substr(0,n)<<endl;
else
{
cout<<s;
for(int i=8;i<=n;i++)
{
if((i-8)%4==0) cout<<"G";
else if((i-8)%4==1) cout<<"B";
else if((i-8)%4==2) cout<<"I";
else if((i-8)%4==3) cout<<"V";
}
}
}
return 0;
}
4718. 弹球线路
https://www.acwing.com/problem/content/4721/
题目大意:
给定一个 n×m 的方格矩阵。
将一个弹球放置到其中的任意一个方格之中,并使其沿四个对角方向之一(左上、左下、右上、右下)进行无限移动。
当弹球移动至矩阵边缘的方格时,它可以发生反弹并继续移动。
更具体地说,当它到达矩阵边(但并非角)上的方格时,它可以将移动方向改变 90 度并继续移动,当它到达矩阵角上的方格时,它可以将移动方向改变 180 度并继续移动。
不难发现,弹球会沿着一个固定的线路进行无限循环移动。
我们认为两个线路不同,当且仅当两个线路包含的方格不完全相同(而不考虑弹球的具体移动方向)。
弹球在不同的初始位置沿不同的初始方向进行移动,其移动线路可能不同,也可能相同。
现在,请你计算弹球一共可能有多少种不同的移动线路。
输入样例1:
3 4
输出样例1:
2
输入样例2:
3 3
输出样例2:
3
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=5000200,M=2002;
LL a[N],b[N];
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
LL T=1;
//cin>>T;
while(T--)
{
LL n,m;
cin>>n>>m;
cout<<__gcd(n-1,m-1)+1<<endl;
}
return 0;
}