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;
}
posted @ 2022-12-21 22:17  Vijurria  阅读(18)  评论(0编辑  收藏  举报