02 2020 档案
摘要:第1种方法 也是最暴力的一种 我们熟知,c++中的set可以既去重,有排序,这题,我们可以用set来搞,虽然我们不需要排序的功能,但毕竟方便,一共是10个数,所以暴力一点也没事 时间复杂度是O(log2n) code: #include <bits/stdc++.h
阅读全文
摘要:讲讲我的做法 分析题意 如果两人的面积一样大怎么办? 然后发现 输出仅一行一个字符串,若正方形面积大则输出 Alice,否则输出 Bob。 所以一样输Bob 算面积 Alice的面积就是:a2 Bob的面积就是:b∗c 所以就有了代码 long long Alice
阅读全文
摘要:这是本人的第一篇题解 请多多宽恕 这一道题其实不要用数组 我们来观察一下n=3时的情况: 原: 1 2 3 4 5 6 4 1 5 2 6 3 2 4 6 1 3 5 1 2 3 4 5 6 我们去观察2的位置 第一次的位置:2 第二次的位置:4 第三次的位置:1 因为2是前半堆牌,所以可以直接乘2
阅读全文
摘要:正文 简单描述一下题意: 士兵想要过河,他每一次可以往下走一格,也可以往右走一格,但马一步走到的地方是不能走的,问走到n行,m列有多少种走法 我们显然应该先根据马的位置将不能走的格子做一下标记 于是,就会写下这段代码: void work(long long x,long long y){
阅读全文
摘要:讲讲我的做法 看了题目发现要用区间dp,为什么? 我们发现区间dp有一个性质——大区间包涵小区间,这道题就符合这样的一个性质 所以我们要用区间dp来解决这道题。 如何设计状态 那么我们要怎么设计状态,我们想,每给人进入队伍里,只有2种可能,1种是从左边加入,另外1种是从右边进入,所以我们
阅读全文
摘要:前言 其实这道题的关键就是在于预处理,其方法类似于 合唱队形 正文 求最大子段和 要想求出双子序列最大和,首先我们要会求出最大子段和 最大子段和的求值方法很简单 定义 fi 为以第 i 个数结尾的最大子段和 #include <bits/stdc++.h> using namesp
阅读全文
摘要:讲讲我的做法 刚开始做这道题的时候,看到n<=15,我这个6年级的蒟蒻的第1反应是状压dp。貌似不好做。然而,等到我在省中集训的时候,老师的一席话,让我豁然开朗。今天我准备来分享一下。 老师的话是:除了第1行,其他格子要不要翻是由上一行决定的。 听到这里,我想应该跟那时的我一样——豁然开
阅读全文
摘要:前言 首先,看到这道题目,我首先想到的是暴搜,通过vector来搞,代码也是很短的。 这里用了一个类似于分治的思想 把一个大问题转化为小问题 先枚举第一个单词,之后把能拼接在它后面的单词都一个一个的去试,哪个最优选哪个 #include <bits/stdc++.h> using namespa
阅读全文
摘要:前言 ZHK私人博客体验更佳 这道题目,n<=105,显然在暗示我们使用nlogn的做法,我就是用了一个简单的贪心,通过了此题。 正文 在这道题中,我们发现,可以把 Bessie 每次走的路看成是对序列的一段区间染色。 for(int i=1;i<=n;i++){ i
阅读全文
摘要:讲讲我的做法 题目大意:对一个字符串进行折叠是它长度最小 看一眼数据范围:哇!字符串长度不超过100!这是一道省选题,不可能给你太宽裕的时限,所以,题目基本暗示你要用n3多一些的算法复杂度。 这是一道最优化的题目,常见求最优化问题的算法比如贪心,模拟,枚举我都想不出什么好办法,唯独觉得像一
阅读全文
摘要:前言 这场比赛,在最后 5 分钟,我想到了这道题的 Idea,但是,没有打完,比赛就结束了。 正文 题目意思 这道题目的意思就是说,一棵树上每次给 x 和 y 节点连 1 条边,问 a 到 b 之间有没有长度为 k 的边。 分析 一开始
阅读全文
摘要:算法篇 二分 注意边界条件 左闭右开是r=n+1。 右闭左开是l=0。 注意是否有二分性质。 数据结构篇 线段树篇 四倍空间。 想好这东西可不可以用线段树维护。 数学篇 与gcd相关的东西,要考虑公倍数。 代码篇 longlong 想一想会不会爆longlong。 检查是否改
阅读全文