acwing 第63场周赛【2022.08.06】

简介: acwing 第63场周赛【2022.08.06】
❤ 作者主页: 欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于 Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得 关注点赞收藏评论⭐️⭐️⭐️ 📣 您的支持将是我创作的动力,让我们一起加油进步吧!!!🎉🎉

@TOC

一、4503. 数对数量

1. 题目描述

在这里插入图片描述

2. 思路分析

签到题,只需暴力枚举出三个条件的整数对(x, y)的个数即可。

3. 代码实现

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int a, b, n;
    int res = 0;
    cin >> a >> b >> n;
    
    for (int i = 0; i <= a; i ++ ) 
    {
        for (int j = 0; j <= b; j ++ )
        if (i + j == n) res ++;
    }
    cout << res << endl;
    
    return 0;
}

二、4504. 字符串消除

1. 题目描述

在这里插入图片描述

2. 思路分析

  1. 使用栈进行维护,首先将第一个字符压入栈中,依次枚举每个字符

    • 如果栈不为空且该字符于栈顶元素相同,则栈顶元素出栈,并且ans++
    • 否则将该字符压入栈中;
    1. 如果ans为奇数,则先手必赢;如果ans为偶数,则先手必输。

3. 代码实现

#include <bits/stdc++.h>
#include <cstring>

using namespace std;

const int N = 1e5 + 10;

char a[N];
stack<char> stk;

int main()
{
    int res = 0;
    scanf("%s", a);

    stk.push(a[0]);
    for (int i = 1; i < strlen(a); i ++ )
    {
        if (stk.size() > 0 && a[i] == stk.top())
        {
            stk.pop();
            res ++;
        }
        else
        {
            stk.push(a[i]);
        }
    }
    if (res % 2 == 0) cout << "No" << endl;
    else cout << "Yes" << endl;

    return 0;
}

三、4505. 最大子集

1. 题目描述

在这里插入图片描述

2. 思路分析

提示:集合最大可能的大小是3,最小的大小不会小于1,三个数的情况是等差数列。

  1. 首先把所有数放入哈希集合;
  2. 枚举最小值,以及公差(最多30种公差),找到长度3以内的最长序列;
  3. 剪枝:找到长度为3的序列就直接结束算法。

3. 代码实现

#include <bits/stdc++.h>

using namespace std;

const int N = 200010, M = 1999997, INF = 0x3f3f3f3f;

int n;
int q[N], h[M];

int find(int x)
{
    int t = (x % M + M) % M;
    while (h[t] != INF && h[t] != x)
        if ( ++ t == M)
            t = 0;
    return t;
}

int main()
{
    scanf("%d", &n);
    for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);
    sort(q, q + n);

    memset(h, 0x3f, sizeof h);

    int res[3], s[3];
    int rt = 0, st = 0;
    for (int i = 0; i < n; i ++ )
    {
        for (int j = 0; j <= 30; j ++ )
        {
            int d = 1 << j;
            s[0] = q[i], st = 1;
            for (int k = 1; k <= 2; k ++ )
            {
                int x = q[i] - d * k;
                if (h[find(x)] == INF) break;
                s[st ++ ] = x;
            }
            if (rt < st)
            {
                rt = st;
                memcpy(res, s, sizeof s);
                if (rt == 3) break;
            }
        }
        if (rt == 3) break;
        h[find(q[i])] = q[i];
    }

    printf("%d\n", rt);
    for (int i = 0; i < rt; i ++ )
        printf("%d ", res[i]);

    return 0;
}

四、周赛总结

本次周赛只ac了前两道,第三题想复杂了就没有ac出来,争取下一次周赛ak。

关注博主不迷路,内容持续更新中。

目录
相关文章
|
1月前
|
存储
Leetcode第383场周赛
在LeetCode第383场周赛中,选手完成了3道题目。第一题是关于边界上的蚂蚁,蚂蚁根据非零整数数组nums的值移动,返回蚂蚁返回边界上的次数。解题方法是计算数组累加和为0的次数。第二题涉及计算网格的区域平均强度,给定一个灰度图像和阈值,返回每个像素所属区域的平均强度。解题关键在于理解相邻像素和区域定义,并计算平均强度。第三题是恢复单词初始状态的最短时间问题,通过移除前k个字符并添加k个字符,求恢复原词所需的最短时间。解题策略是检查去除前k个字符后的子串是否能作为原词的前缀。
15 1
Leetcode第383场周赛
|
1月前
|
存储
Leetcode第382场周赛
```markdown 给定字符串`s`,计算按键变更次数,即使用不同键的次数,不考虑大小写差异。例如,`&quot;aAbBcC&quot;`变更了2次。函数`countKeyChanges`实现此功能。另外,求满足特定模式子集最大元素数,`maximumLength`函数使用`TreeMap`统计次数,枚举并构建子集,返回最大长度。最后,Alice和Bob玩鲜花游戏,Alice要赢需满足鲜花总数奇数、顺时针在[1,n]、逆时针在[1,m],返回满足条件的(x, y)对数,可通过奇偶性分类讨论求解。 ```
19 1
|
测试技术
LeetCode283场周赛
LeetCode283场周赛
61 0
AcWing第 96 场周赛
AcWing第 96 场周赛
158 0
|
机器学习/深度学习 编译器
【AcWing周赛】AcWing第85场周赛
目录 &lt;一&gt;Acwing 4791. 死或生 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 &lt;二&gt;Acwing 4792. 最大价值 一、题目 1、原题链接 2、题目描述 二、解题报告: 1、思路分析 2、时间复杂度 3、代码详解 &lt;三&gt;Acwing 4793. 危险程度 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 &lt;四&gt; 知识风暴 1、排序不等式 2、贪心法 3、数据范围 4、并查集 基本操作
67 0
|
机器学习/深度学习 人工智能 安全
【AcWing周赛】AcWing第86场周赛
目录 <一>AcWing 4794. 健身 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 <二>AcWing 4795. 安全区域 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 <三>AcWing 4796. 删除序列 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
66 0
|
JavaScript BI
【蓝桥杯集训·周赛】AcWing 第96场周赛
文章目录 第一题 AcWing 4876. 完美数 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 第二题 AcWing 4877. 最大价值 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 第三题 AcWing 4878. 维护数组 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
72 0