| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Codeforces Global Round 15 -> 正文阅读 |
|
[数据结构与算法]Codeforces Global Round 15 |
文章目录A - Subsequence Permutation题意问要最少选择多少个字符在选择的区域内排序使得排完序之后成为字典序 题解我们可以对所有的字符进行排序,在于原来的进行比较,那么原本就成为答案的位置就不需要动了,只需要选择原来不在答案上的就可以 Code
B - Running for Gold题意题意很长,简单来说就找一个“最强”的来当冠军 题解如果存在,就跟我们在学语法的时候储存最大值就是一个做法 当出现矛盾的时候呢?即答案要是-1呢? 就如样例给的那个-1的那个样例 构成了一个三角克制的关系 我们如果先确定好一个基准,如果根据这个基准得到的答案是正确的答案,那么显然无论从以哪个为基准,正解一定就是刚才求出那个答案,不存在顺序的问题。 如果存在有方向的克制关系,就以样例为举例来说,以1位基准,从2到n,第二个比第一个差,第三个比第一个好,那么得到的答案是3,但是2比3好这显然也是不合理的;以n为基准,从n-1到1,那么按照刚才那个做法来计算答案,答案应该是1。所以说,只要存在环装的矛盾结构,以不同的基准来得到答案结果应该是不一样的 Code
C - Maximize the Intersections题意在圆上给定2n个点,k条已经连好的边;每个点只能用一次,也就是只能作为一条边的顶点,问剩下的 2*(n - k) 个点怎么连使得最后交点个数最多,最多是多少 思路大佬都说这是结论题,愣是看了三份题解才看懂 我们首先考虑怎么才能判断两个线是不是相交呢? 这个也没有什么可以证的,如果遇到这种问题应该首先多画图找找规律,我这里直接放代码理解了,建议看完画图验证一下
那么剩下的没有用过的点,我们考虑他们的相对位置,也就是剩下的点本质上我们让他交点个数最大就可以保证最后的交点个数最多,也就是成为一个星形的结果是最大的,证明星形可以去看官方的题解,我不是很能看懂但我觉得星型是对的。(不用考虑原来已经给出的,因为从给出的线 中的交点数已经固定好了。) 那么怎么构造星型呢?画图可以得出来,当有2n个点的时候,构成的点对是 (i, i + n) 的时候是星形的。那么还有2(n - k)个点,就是(i, i + n - k) Code
D 待补 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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:26:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |