前言

这是大学第二次跟队友打CCPC,不过由于今年来,我们队一个人在腾讯实习,一个在准备保研,我在准备考研+保研,所以没多少一起练习的机会,我也因为少了打代码而导致技能生疏。因此虽然这次是网络选拔赛,但我们也没比去年的中大正式赛好太多,仅仅只是做了1102,1003,1007,1010和1011,最后想冲多一题,结果被卡到结束,所以结束后我也打算随便写一个题解记录一下。

2020CCPC网络赛题解

1010 Reports

题面
给你一个数组,问数组中是否有连续的数字,没有则输出YES,有则输出NO。

输入

  • 第一行输入T,代表T个样例
  • 每一个样例:

    • 第一行输入n,代表一共有n个数
    • 第二行输入$a^1$,$$a_2$$,$a_3$……an,0表示离开学校,1表示进入学校
  • 1≤T≤100
  • 3≤n≤50
  • 0≤ai≤1

输出
对每个样例,如果没有连续的数字,则输出YES,有连续的数字,则输出NO。

样例

Sample Input
4
3
1 1 1
3
1 0 1
5
0 1 0 1 0
4
1 0 1 1

Sample Output
NO
YES
YES
NO

思路
签到题,直接模拟就好,遍历一遍数组就可以知道有没有连续的数字了。

代码

#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
#define inf 0x3f3f3f3f
#define INF 0x3f3f3f3f3f3f3f3f
#define debug(x) cout << "---->" << x << endl;
using namespace std;
const double pi = acos(-1.0);
const int maxn = 1e6+5;
const int maxm = 1e5+5;

int n, a[55];

int main()
{
    int t;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d", &n);
        for(int i = 1; i <= n; i++)
            scanf("%d", &a[i]);
        int flag = 1;
        for(int i = 1; i < n; i++)
        {
            if(a[i] == a[i+1]) {
                flag = 0;
                break;
            }
        }
        if(flag) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

1011 Reports

题面
给你一个数组,问数组中是否有连续的数字,没有则输出YES,有则输出NO。

输入

  • 第一行输入T,代表T个样例
  • 每一个样例:

    • 第一行输入n,代表一共有n个数
    • 第二行输入$a^1$,……an,0表示离开学校,1表示进入学校
  • 1≤T≤100
  • 3≤n≤50
  • 0≤ai≤1

输出
对每个样例,如果没有连续的数字,则输出YES,有连续的数字,则输出NO。

样例

Sample Input
4
3
1 1 1
3
1 0 1
5
0 1 0 1 0
4
1 0 1 1

Sample Output
NO
YES
YES
NO

思路
签到题,直接模拟就好,遍历一遍数组就可以知道有没有连续的数字了。

代码

最后修改:2022 年 01 月 27 日 12 : 48 PM
如果觉得我的文章对你有用,请随意赞赏