| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> Codeforces Round #831 (Div. 1 + Div. 2)——A、B、C、D、E -> 正文阅读 |
|
[C++知识库]Codeforces Round #831 (Div. 1 + Div. 2)——A、B、C、D、E |
A:?题意:给一个质数n,求得一个数m,使得n+m不为素数。? 解析:质数n+本身,为2*n,其一定不为质数。所以答案可以是它本身
B:?题意:给定N个n*m的长方形,要求每个长方形的一条边都必须与x轴重合,长方形的边可以重合,但不允许长方形重叠。问怎样放才能使得拼后的长方形周长最小。 分析:贪心。我们发现,重合于x轴的边,是固定的,所以我们只需要把每个长方形最小的边于x重合,这里所得的宽一定是最小的,同理我们可以发现,最终所得的高一定是等于最大的边的。这里给个图方便读者理解。(所求的周长,即为红色长方形的周长)
题意:给定n个石头和三个空背包,将n个石头放入三个背包中。从三个背包中拿出三个石头,假设冲三个包中拿出的石头的质量为 a,b,c ,最终的分数为 |a?b|+|b?c| ,取石头的人会最小化这个值,请问如何分配石头可以使得最终的分数最大。 分析:我们对这个分数公式进行分析,会发现,区间[a,c],b是到两个端点距离的和。但是我们发现,另一个人会最小化这个分数。因此对于所有的石头我们先排好序。假如我们在b中放入了质量最小的石头,如果希望最大,在a背包中放入质量最大的石头,我们至少会获得 max?min 的权值,但是另一边 b?c 我们只能获得?次小值?最小值 的贡献。b背包作为权值的源点,其取值必然是一个极值。 代码:
?D:?(这个图是GIF....见谅一下..) 题意:给定一个 n?m 的矩阵,在 [1,1]的位置放置了 k 个棋子, k 个棋子是 1?k 的排列,给定这些棋子从上到下放置的顺序。每次可以移动最顶端的一个棋子到相邻的位置,棋子除了在起点和终点都不能重叠。求 k 个棋子最终能够在 [n,m] 处从上到下以 1?k 的顺序叠放好。 分析:我们把不能一次放到终点的棋子先放在一边。然后每次遇到能放的棋子就直接过去。我们能够停放的位置一共有 n?m?2 个,所以,最终我们只需要判断,目前所停靠棋子的数量是否大于n*m-2个即可。这里选择用树状数组维护这个值 简要解释:因为起点终点位置不能进行重叠,所以其余可以重叠的位置个数就肯定是:n*m-2个,除开起点和终点,那么一定是可以通过操作到达目的的! 代码:?
?E:题意:给定一个树,我们的目标是构造树的点权。每次操作可以选择一个叶子节点,并且摘掉这个叶子节点并且获得叶子节点的权值。每次摘叶子的时候,如果你摘的叶子的权值比他的父节点小,那么父节点的权值就会变成这个叶子的权值,一直进行到树被摘完。最终我们会获得摘叶子的序列,起价值是该序列的最长非下降子序列。请合理的构造树上的权值,最大化操作后的价值。 分析:我们首先考虑如何摆放叶子是最优的。因为求的是最长的非下降子序列,因此深度越深的节点一定点权越小。我们从叶子开始摘,最小的叶子会不断影响其父节点。根节点必然放最大的权值,因此最小的那个权值最终一定会影响到根节点。 代码:
? ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 14:00:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |