| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> AtCoder Beginner Contest 213 题解(A-E) -> 正文阅读 |
|
[数据结构与算法]AtCoder Beginner Contest 213 题解(A-E) |
AtCoder Beginner Contest 213 题解(A-E)A. Bitwise Exclusive Or题目大意:给出两个整数 A A A和 B B B,找出一个非负整数 C C C使得 A ⊕ C = B A\oplus C=B A⊕C=B。 解题思路:因为异或是自反的,所以 C = A ⊕ B C=A\oplus B C=A⊕B。 代码:
B. Booby Prize题目大意:给出 n n n个不同的整数,问第二大的整数的第几个整数。 解题思路:每个整数带上序号排序即可。 代码:
C. Reorder Cards题目大意:有一个 H × W H\times W H×W的矩阵,有 N N N个位置上分别写有数字,第 i i i个数字写在第 A i A_i Ai?行第 B i B_i Bi?列。 会将所有不存在数字的行和列全部删去,问最后这 N N N个数字的下标是多少。
解题思路:因为所有不存在数字的行和列都会被删去,所以留下来的一定是存在数字的行和列。 那么对行和列分别进行离散化,就能知道行和列在所有行列中的相对位置。 时间复杂度 O ( N l o g N ) O(NlogN) O(NlogN) 代码:
D. Takahashi Tour题目大意:有 N N N座城市,所有城市之间有 N ? 1 N-1 N?1条无向边。 现在从城市 1 1 1开始旅行:
输出旅行访问的城市顺序。 解题思路:因为是一棵树,所以按照题意从点 1 1 1进行dfs就行了。 对于每个点按照从小到大的顺序进行深搜,因为每次都一定会回来,所以除了在要到达每个节点的时候输出一次当前节点,还要在dfs子节点结束之后输出当前节点。 代码:
E. Stronger Takahashi题目大意:给出一个 N × M N\times M N×M的平面,一部分格子是可以通过的,另一部分格子上面会有石头阻碍通过。 现在要从左上角走到右下角,因为主角身强体壮,可以一拳击碎 2 × 2 2\times2 2×2的区域内的所有石头,问最少需要打拳几次才能走到右下角。 解题思路:如果我们在BFS的过程中,遇到了走不通的情况,在把某个石头作为要击穿的对象,那么这个以这个石头为中心的 3 × 3 3\times 3 3×3区域内的所有格子我们都能花费 1 1 1次的代价走到。 所以整张图就变成了边权只有 0 0 0和 1 1 1的情况,可以考虑用双端队列来进行BFS。 边权为0的就加入到队头,边权为1的就加入到队尾。 时间复杂度 O ( N ? M ) O(N*M) O(N?M)。 代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:25:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |